Javascript将数组推入另一个数组
以下代码(带/不带扩展运算符)之间有什么区别吗?
let result = [];
let arr1 = [1,2,3];
result.push(arr1)
result.push([...arr1])
回答
在第一种情况下,没有扩展,对第 0 个位置的数组的任何修改result也将导致对原始数组的更改arr1,反之亦然。
但是,如果您在推送时扩展数组,则不会发生此类更改;两个数组(一个 in arr1,一个 in result[0])将完全独立。
let result = [];
let arr1 = [1,2,3];
result.push(arr1)
arr1[1] = 999;
console.log(result);
let result = [];
let arr1 = [1,2,3];
result.push([...arr1])
arr1[1] = 999;
console.log(result);