Javascript RangeError:数组超过了最大调用堆栈大小。推送(…)

Javascript RangeError:数组超过了最大调用堆栈大小。推送(…),javascript,Javascript,下面的简单代码生成RangeError:超出了最大调用堆栈大小 const arr = [] for (let i = 0; i < 135000; i++) { arr.push(i) } const arr2 = [] // something else here that changes arr2 arr2.push(...arr) const arr=[] 对于(设i=0;i

下面的简单代码生成
RangeError:超出了最大调用堆栈大小

const arr = []
for (let i = 0; i < 135000; i++) {
    arr.push(i)
}
const arr2 = []
// something else here that changes arr2
arr2.push(...arr)
const arr=[]
对于(设i=0;i<135000;i++){
arr.push(一)
}
常数arr2=[]
//这里还有一些改变arr2的东西
arr2.推送(…arr)
1) 为什么会发生这种情况?(我只是简单地将元素添加到数组中,为什么它会增加堆栈大小?)

2) 如何修复此错误?(我的目标是将arr的浅层副本创建到arr2中)

那里的spread操作符:

const arr=[];
for(设i=0;i<10;i++){
arr.push(i);
}
常数arr2=[];
//这里还有一些改变arr2的东西:
arr2.推送(0,0,0,0,0,0,0,0,0,0);
Array.prototype.push.apply(arr2,arr);
console.log(arr2.join(',')
//我希望这将帮助您将arr的浅拷贝复制到arr2中
设arr=[]
对于(设i=0;i<135000;i++){
arr.push(一)
}
设arr2=[]
//这里还有一些改变arr2的东西
arr2=arr
console.log(arr2[0],arr[0]);
//都是0,0
arr[0]=100
console.log(arr[0],arr2[0])

//您可能希望使用100100和100100。这是否回答了您的问题?