Tag: 时间复杂度

Node.js的时间复杂度/效率emitter.removeListener(event,listener)

什么是Node.js的EventEmitter.removeListener(event,listener)方法的时间复杂度,根据绑定到发射器上的特定事件的侦听器的数量? 链接: http : //nodejs.org/api/events.html#events_emitter_removelistener_event_listener 对于一般情况,是O(n)还是接近O(1)? 基本上,我可能有成千上万的监听器绑定到相同的事件,我需要removeListener操作是O(1)。

访问对象中数据的复杂性

在我作为日常工作的一部分的一些项目中,我需要访问非常大的JS对象中的数据(数以千计的键值对)。 我试图提高我的代码的效率,所以我想出了几个问题: 当访问这样一个对象中的字段时,JS的运行时复杂度是多less? 我最初的预感是O(n) 通过点符号或括号表示访问时是否有区别? (例如obj.field vs obj[field] ) 我猜测对于不同的运行时引擎有不同的答案 – 有没有一个地方我可以看到它们之间的区别?

循环与if语句的效率

我有一个用例,我想知道一组数据是否与一个非常小的条件列表匹配(为了说明起见,假设它小于20)。 我正在客户端和服务器端(NodeJS)上执行JavaScript。 我试图在两个选项(或其他任何你可能拥有的选项)之间进行select,但我不确定复杂性和计算时间会有多不同。 我有一种感觉,他们微不足道。 选项1:重复条件列表 var conditions = [{ prop: 'a', check: '===', val: 'foo' }, { prop: 'b', check: '!==', val: 'bar' }]; for (var i=0;i<conditions.length;i++) { // Check conditions[i] if (conditions[i].check === '===') { if (data[conditions[i].prop] === conditions[i].val) { // Keep checking } else { // Fail } } else if (conditions[i].check === […]