Javascript 对数组和对象进行迭代
哪一个更快:在数组或对象上迭代。当我需要执行诸如从中间删除任何元素之类的操作时会发生什么Javascript 对数组和对象进行迭代,javascript,arrays,object,Javascript,Arrays,Object,哪一个更快:在数组或对象上迭代。当我需要执行诸如从中间删除任何元素之类的操作时会发生什么 var a = {"A1":1, "B1":2, "C1":3}; 或 一个不比另一个快或慢。使用对您的项目最有意义的选项 至于删除,对于数组,请查看,对于对象,请尝试 哪一个更快-在数组或对象上排列 数组的存储效率可能更高,而且其索引是可预测的,无需查找。它应该更快一些,但是你不会注意到在小场景中有什么不同 当我需要执行诸如从中间删除任何元素之类的操作时会发生什么 var a = {"A1":1, "B
var a = {"A1":1, "B1":2, "C1":3};
或
一个不比另一个快或慢。使用对您的项目最有意义的选项 至于删除,对于数组,请查看,对于对象,请尝试 哪一个更快-在数组或对象上排列 数组的存储效率可能更高,而且其索引是可预测的,无需查找。它应该更快一些,但是你不会注意到在小场景中有什么不同 当我需要执行诸如从中间删除任何元素之类的操作时会发生什么
var a = {"A1":1, "B1":2, "C1":3};
这对一个物体来说很容易;您只需调用delete a.A1;。这是O1手术
对于数组,使用.1,1;,需要对所有项进行重命名,如果经常在上进行,则重命名速度相当慢。在数组上迭代应该比在对象上迭代快,但这取决于: 对象/数组的大小 你的钥匙是否连在一起 其他各种各样的乐观主义者的废话 在较旧的浏览器上,从数组中删除元素的成本很高,因为它需要更改每个后续元素上的键,但在现代浏览器上,这不是什么问题
说真的,只需为您的项目使用最好的表示形式,然后在以后出现问题时担心优化问题。没有json集合。JSON是数据的字符串表示形式。这是一个JavaScript对象,与JSON无关。更有趣的事实是:数组是一个对象。它恰好是一个属性名类似于数字的对象。什么更快?哪里你说发生什么事是什么意思?RAM中的字节数发生了变化?屏幕上的像素变化?@a.hasOwnProperty在现代ES5代码中不是必需的。人们应该改掉使用它的习惯。@RocketHazmat:我认为console.log版本更现实。没有人只是迭代一堆属性,然后不处理它们。如果你只关心做那件事,那么基准几乎是无关紧要的。一旦你真的做了有用的工作,这两者之间的差异很容易变成噪音。但如果我从数组中拼接,整个索引会在删除的元素之后被洗牌。@jason:如果这对你很重要,那么就使用对象。在项目中使用更有意义的选项。