我有以下代码,据我所知,Array.slice()假设是创建主数组的新副本,但事实并非如此。正如您所看到的,我正在编辑数组" b" ,它正在修改主阵列" a" ,这不是我想要的是什么。
let a = [ { "a": true }, { "a": true }, { "a": true } ];
let b = a.slice(1, 2);
b[0].b = false;
console.log(a);

如果有人能给我一个关于如何从主阵列制作副本然后在不修改主阵列的情况下进行编辑的提示,那将对我有所帮助。谢谢
修改(解决方案):
function copy(obj) {
return Object.assign({}, obj);
}
let a = [ { "a": true }, { "a": true }, { "a": true } ];
let b = a.slice(1, 2).map(copy);
b[0].b = false;
console.log(a);

信用:Ryan