javascript数组一起变化
创建第二个数组=到第一个数组,然后对第二个数组执行“移位”,第一个数组也受到影响。请参阅下面的代码。我希望第二个数组在轮班后包含Larry和Moe,第一个数组包含原来的三个元素。换班后,两个阵列都只有Larry和Moe作为元素javascript数组一起变化,javascript,arrays,Javascript,Arrays,创建第二个数组=到第一个数组,然后对第二个数组执行“移位”,第一个数组也受到影响。请参阅下面的代码。我希望第二个数组在轮班后包含Larry和Moe,第一个数组包含原来的三个元素。换班后,两个阵列都只有Larry和Moe作为元素 var firstArray = ["Curly", "Larry", "Moe"] var secondArray = firstArray; var thirdArray = firstArray; alert("This is first array " + fir
var firstArray = ["Curly", "Larry", "Moe"]
var secondArray = firstArray;
var thirdArray = firstArray;
alert("This is first array " + firstArray + "<br>");
secondArray.shift();
alert("This is first array " + firstArray + "<br>");
alert("This is second array " + secondArray + "<br>");
alert("This is third array " + thirdArray + "<br>");
var firstArray=[“Curly”、“Larry”、“Moe”]
var secondArray=firstArray;
var thirdArray=第一个数组;
警报(“这是第一个数组”+firstArray+“
”);
secondArray.shift();
警报(“这是第一个数组”+firstArray+“
”);
警报(“这是第二个数组”+secondArray+“
”);
警报(“这是第三个数组”+thirdArray+“
”;
此处secondArray
和thirdArray
指与firstArray
相同的数组,而不是新的独立数组
您可以使用它返回数组部分的浅层副本
var firstArray = ["Curly", "Larry", "Moe"]
var secondArray = firstArray.slice();
var thirdArray = firstArray.slice();
alert("This is first array " + firstArray + "<br>");
secondArray.shift();
alert("This is first array " + firstArray + "<br>");
alert("This is second array " + secondArray + "<br>");
alert("This is third array " + thirdArray + "<br>");
var firstArray=[“Curly”、“Larry”、“Moe”]
var secondArray=firstArray.slice();
var thirdArray=firstArray.slice();
警报(“这是第一个数组”+firstArray+“
”);
secondArray.shift();
警报(“这是第一个数组”+firstArray+“
”);
警报(“这是第二个数组”+secondArray+“
”);
警报(“这是第三个数组”+thirdArray+“
”;
原因是数组是引用类型。 有两种类型的变量
secondArray.shift();
它将从引用的数组中删除所有三个变量引用的第一个值。
有关更多详细信息,请阅读以下链接您可以使用slice方法获取数组的副本,如下所示
var secondArray = firstArray.slice();
有关其他方法,请参阅下面的链接
您没有制作数组的副本-
secondArray
和thirdArray
都是对同一数组的引用。可能是