我正在尝试将同一数组推入array。为什么要创建循环引用?
var arr =[4,4];
arr.push(arr);
console.log(arr)
// Expected output = [4,4,[4,4]]
// actual output = [4,4,[4,4,[4,4,[...]]]
答案 0 :(得分:0)
因为第一个元素是数组,所以元素的第一个元素是对外部数组的引用,依此类推。
您正在寻找Array#slice
:
const arr1 = [4, 4]
arr1.push (arr1.slice (0)) // <-- slice creates a new array
// whose members are the same as
// arr1
console.log (arr1)
扩展语法也可以帮助解决此问题:
const arr1 = [4, 4]
arr1.push ([...arr1]) // spread syntax
console.log (arr1)
答案 1 :(得分:0)
您要推送相同的数组。一种选择是,您可以使用spread syntax
来迭代每个数组元素并构造一个新的数组元素。
赞:
var arr = [4, 4];
arr.push([...arr]);
console.log(arr)