Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 对数组和对象进行迭代_Javascript_Arrays_Object - Fatal编程技术网

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:如果这对你很重要,那么就使用对象。在项目中使用更有意义的选项。