Javascript 是否复制到新阵列并删除元素?
我需要复制一个数组并删除元素,但只从第二个数组中删除 例如:Javascript 是否复制到新阵列并删除元素?,javascript,jquery,arrays,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 因此,每个数组中的第一个元素都被删除了,但是如何使第一个数组保持静态呢?您需要这样做 var m2 =
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
因此,每个数组中的第一个元素都被删除了,但是如何使第一个数组保持静态呢?您需要这样做
var m2 = m1.slice(0);
原因是doing=复制引用,slice将创建一个新数组 用于复制阵列:
var m2 = m1.slice();
用于将值复制到新数组:
var m2 = m1.slice(0);
将m2指定给m1时,将引用指定给m2变量。这两个变量都指向内存中的相同位置。您必须复制对象 下面是如何在JavaScript中执行此操作的说明: