复制到新数组并删除元素?

时间:2013-12-19 18:06:20

标签: javascript jquery arrays

我需要复制一个数组并删除该元素,但只能从第二个数组中删除?

例如:

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

所以删除了每个数组中的第一个元素,但是如何让第一个数组保持静态?

4 个答案:

答案 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?