ссылка

Н:Синтаксис распространения

Примечание. Обычно операторы распространения в ES2015 переходят на один уровень при копировании массива. Поэтому они не подходят для копирования многомерных массивов. То же самое относится и к Object.assign () и синтаксису распространения объектов. Посмотрите на пример ниже для лучшего понимания.

var a = [[1], [2], [3]];
var b = [...a];
b.shift().shift(); // 1
// Now array b is: [[2], [3]]

Какой смысл вышеприведенного утверждения? Приведенный выше пример кода работает так же, как если бы вы скопировали массив из a в b с помощью метода .slice (). Я попытался добавить другое измерение в массив здесь:https://repl.it/HKOq/2 и все еще работало, как ожидалось.

Так почему же синтаксис распространения не подходит для копирования многомерных массивов?

Буду признателен за любую помощь.

РЕДАКТИРОВАТЬ:

Чтение ответов estus и vol7ron помогло мне разобраться. По сути, как указывает Estus, в массивах есть только массивы, а не многомерные массивы.

И, как объясняет vol7ron, копируется только первый уровень массива, поэтому объекты в памяти остаются неизменными для любых последующих вложенных элементов.

Я также был неправ, подозревая, что использование синтаксиса распространения должно вести себя иначе, чем оператор среза

Ответы на вопрос(4)

Ваш ответ на вопрос