我有一个对象,
obj = {};
现在我将项目添加到这个对象中,
obj[element] = /*something*/
现在,如果我想为 key = element 访问此对象,
obj[element];
这个操作的时间复杂度是多少。
并且请不要建议使用 Array 而不是 Object,我知道数组具有恒定的时间查找,因为我正在以随机数添加元素(使用它们作为索引),所以如果我使用数组,我将有一个稀疏数组,那就是在内存方面效率低下。
我有一个对象,
obj = {};
现在我将项目添加到这个对象中,
obj[element] = /*something*/
现在,如果我想为 key = element 访问此对象,
obj[element];
这个操作的时间复杂度是多少。
并且请不要建议使用 Array 而不是 Object,我知道数组具有恒定的时间查找,因为我正在以随机数添加元素(使用它们作为索引),所以如果我使用数组,我将有一个稀疏数组,那就是在内存方面效率低下。
它足够小,您不必担心。对象是javascript的核心部分,微优化不好。
编写可理解的代码(无论是对象还是非对象)比编写节省时间的代码要好得多0.000000000001
。
只是你需要知道:数组在 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");