Я пытаюсь сместить массив и использовать этот массив, а затем установить его в исходные значения, используя скопированный массив, который был скопирован не по ссылке.По некоторым причинам смещение массивов из исходного массива не влияет на скопированный массив, но смещение элементов из массивов в исходном массиве влияет на скопированный массив.Как мне скопировать массив, изменить его, использовать его, а затем вернуть его в исходную форму?
У меня изначально были проблемы, потому что я копировал по ссылке, но потом я узнал, что использование оператора rest позволиломне скопировать массив (не по ссылке).Кажется, эти две привязки все еще связаны.
var m = [[1,2,3],[4,5,6],[7,8,9]]
var matrix = [...m]
m.shift();
console.log(matrix);
m[0].shift();
console.log(m);
console.log(matrix);
Ожидается:
[ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ] ]
[ [ 5, 6 ], [ 7, 8, 9 ] ]
[ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ] ]
Фактически:
[ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ] ]
[ [ 5, 6 ], [ 7, 8, 9 ] ]
[ [ 1, 2, 3 ], [ 5, 6 ], [ 7, 8, 9 ] ]