=を使用して配列を直接割り当てると、新しい配列が変更されると元の配列が変更されます。
let oldArr = [
{group: 1, id: 2, name: "aa"},
{group: 2, id: 1, name: "bb"}];
let newArr2 = oldArr;
for (let i = 0; i < newArr2.length; i++) {
if (newArr2[i].id == 1) {
newArr2[i].name = "new";
break;
}
}
console.log(oldArr);
console.log(newArr2);
オブジェクトのディープコピーを使用して、配列を変更しても元の配列には影響しません。
let oldArr = [
{group: 1, id: 2, name: "aa"},
{group: 2, id: 1, name: "bb"}];
let newArr2 = JSON.parse(JSON.stringify(oldArr)); //对象深拷贝,修改不影响之前的
for (let i = 0; i < newArr2.length; i++) {
if (newArr2[i].id == 1) {
newArr2[i].name = "new";
break;
}
}
console.log(oldArr);
console.log(newArr2);