我需要复制一个数组并删除该元素,但只能从第二个数组中删除?
例如:
var m1 = [ "a","b","c","d"];
var m2 = m1;
alert(m1+' and '+m2); // "a b c d" and "a b c d"
m2.splice(0,1); // b c d
alert(m1 + ' and ' + m2); // b c d and b c d
所以删除了每个数组中的第一个元素,但是如何让第一个数组保持静态?
答案 0 :(得分:2)
使用slice()
将值复制到新数组:
var m2 = m1.slice(0);
答案 1 :(得分:1)
你需要做
var m2 = m1.slice(0);
原因是做=复制引用,slice会创建一个新数组!
答案 2 :(得分:1)
使用Array.prototype.slice
复制数组:
var m2 = m1.slice();
答案 3 :(得分:1)
将m2指定给m1时,指定m2变量的引用。两个变量都指向内存中的相同位置。你必须复制对象。
以下是如何在JavaScript中解释:How do I correctly clone a JavaScript object?