-1

我有一个对象,

obj = {};

现在我将项目添加到这个对象中,

obj[element] = /*something*/

现在,如果我想为 key = element 访问此对象,

obj[element];

这个操作的时间复杂度是多少。

并且请不要建议使用 Array 而不是 Object,我知道数组具有恒定的时间查找,因为我正在以随机数添加元素(使用它们作为索引),所以如果我使用数组,我将有一个稀疏数组,那就是在内存方面效率低下。

4

2 回答 2

1

它足够小,您不必担心。对象是javascript的核心部分,微优化不好。

编写可理解的代码(无论是对象还是非对象)比编写节省时间的代码要好得多0.000000000001

于 2013-08-02T12:56:14.083 回答
0

只是你需要知道:数组在 JavaScript 中也是一个对象。

此外,要检查任何操作的速度,您可以执行以下操作:

var obj = {}, element = "test";
obj[element] = 333333;

var time1 = new Date().getTime();       // start timestamp
for (var i=0; i<1000; i++)
{
  // here can be any code for measurement
  var a = obj[element];
}
var time2 = new Date().getTime();       // end timestamp
var result = (time2 - time1) / 1000;    // divide all time to number of iterations
alert(result + " ms");
于 2013-08-02T13:05:01.340 回答