Вложение изменяемого массива в пустой массив с помощью push()
Прошу пояснить следующее поведение:
let newArray = [];
let arr1 = [0, 0];
newArray.push(arr1);
arr1.push(0);
newArray.push(arr1);
console.log(newArray); // ожидается [[0, 0], [0, 0, 0]], в консоли получаю [[0, 0, 0], [0, 0, 0]]
Ответы (1 шт):
Автор решения: Igor
→ Ссылка
Вы добавляете в newArray два раза одну и ту же ссылку на arr1, поэтому видите там два одинаковыx массива.
let newArray = [];
let arr1 = [0, 0];
newArray.push([...arr1]);
arr1.push(0);
newArray.push([...arr1]);
console.log(newArray);