不应修改的数组
Array that should not be modified
我有一个数组 (arr1),我将其推入另一个数组 (arr2)。
我循环修改了'arr1',结果'arr2'也被修改了!为什么 ?
我想在开始时保持 'arr2' 不变。我的错误是什么?
arr1 = [1,2,3];
arr2 = [];
arr2.push(arr1);
$("#a1").html(arr1); // 1,2,3
$("#a2").html(arr2); // 1,2,3
// loop modifying ONLY 'arr1'...
for (i=0 ; i<arr1.length ; i++) {
arr1[i] = arr1[i]*3;
}
$("#b1").html(arr1); // 3,6,9
$("#b2").html(arr2); // 3,6,9 ... ??..incomprehensible !
// 'arr2' should not be modified ! The result should be 1,2,3
// Why is 'arr2' still modified ?
数组对象充当引用类型,而不是 arr2.push(arr1);
你可以尝试最新的 es6 展开运算符 arr2 = [...arr1];
否则切片方法 arr2 = arr1.slice();
.
我有一个数组 (arr1),我将其推入另一个数组 (arr2)。 我循环修改了'arr1',结果'arr2'也被修改了!为什么 ? 我想在开始时保持 'arr2' 不变。我的错误是什么?
arr1 = [1,2,3];
arr2 = [];
arr2.push(arr1);
$("#a1").html(arr1); // 1,2,3
$("#a2").html(arr2); // 1,2,3
// loop modifying ONLY 'arr1'...
for (i=0 ; i<arr1.length ; i++) {
arr1[i] = arr1[i]*3;
}
$("#b1").html(arr1); // 3,6,9
$("#b2").html(arr2); // 3,6,9 ... ??..incomprehensible !
// 'arr2' should not be modified ! The result should be 1,2,3
// Why is 'arr2' still modified ?
数组对象充当引用类型,而不是 arr2.push(arr1);
你可以尝试最新的 es6 展开运算符 arr2 = [...arr1];
否则切片方法 arr2 = arr1.slice();
.