哪个更快:迭代数组或对象。当我需要执行诸如从中间删除任何元素之类的操作时会发生什么?
var a = {"A1":1, "B1":2, "C1":3};
或者
var a = ["A1", "B1", "C1"];
哪个更快:迭代数组或对象。当我需要执行诸如从中间删除任何元素之类的操作时会发生什么?
var a = {"A1":1, "B1":2, "C1":3};
或者
var a = ["A1", "B1", "C1"];
迭代数组应该比迭代对象更快,但这取决于:
在较旧的浏览器上,从数组中删除元素曾经非常昂贵(因为它需要更改每个后续元素的键),但在现代浏览器上这不是问题。
说真的,只使用最适合您项目的表示,然后担心以后如果它成为问题的优化。
哪个更快 - 遍历数组或对象?
数组的存储效率可能更高,而且它的索引也是可预测的(不需要查找)。它应该更快,但您不会注意到小型集的差异。
当我需要执行诸如从中间删除任何元素之类的操作时会发生什么?
使用对象很容易;你只要打电话delete a.A1;
。这是一个O(1)
手术。
使用数组,使用a.splice(1,1);
,需要对所有项目进行重命名,如果经常发生,这会相当慢(O(n)
)。