为了在JavaScript中复制一个数组:下面哪一项使用起来更快?切片法var dup_array = original_array.slice();For环路for(var i = 0, len = original_array.length; i < len; ++i)
dup_array[i] = original_array[i];我知道这两种方式浅拷贝:如果原始数组包含对象的引用,则不会克隆对象,而是只复制引用,因此这两个数组都将具有对相同对象的引用。但这不是问题的重点。我只问速度。在JavaScript-片和“for”循环中复制数组的最快方法
3 回答
幕布斯6054654
TA贡献1876条经验 获得超7个赞
环路 切片 Array.From() 塔特 传播算子(最快)
为 眨眼浏览器 slice()是最快的方法, concat()有点慢,而且 while loop慢了2.4倍。 适用于其他浏览器 while loop是最快的方法,因为这些浏览器没有内部优化 slice和 concat.
同时循环
n = 1000*1000;start = + new Date();a = Array(n); b = Array(n); i = a.length;while(i--) b[i] = a[i];console.log(new Date() - start);
切片
n = 1000*1000;start = + new Date();a = Array(n); b = a.slice();console.log(new Date() - start);
origAr == clonedArr //returns falseorigAr[0] == clonedArr[0] //returns true
添加回答
举报
0/150
提交
取消
