为了在JavaScript中复制数组:以下哪个更快使用?
var dup_array = original_array.slice();
Run Code Online (Sandbox Code Playgroud)
For 环for(var i = 0, len = original_array.length; i < len; ++i)
dup_array[i] = original_array[i];
Run Code Online (Sandbox Code Playgroud)
我知道两种方式只做一个浅的副本:如果original_array包含对象的引用,则不会克隆对象,但只会复制引用,因此两个数组都将引用相同的对象.但这不是这个问题的重点.
我只询问速度.
我想从现有数组形成一个数组,所以我可以修改新数组而不影响旧数组.我意识到数组是可变的,这就是新数组影响旧数据的原因.
例如
old = ["Apples", "Bananas"];
new = old;
new.reverse();
Run Code Online (Sandbox Code Playgroud)
老也被逆转了.
在Python中,我可以做new = list(old),但是new = new Array(old);将旧列表放在列表中.