Я сталкиваюсь с чем-то, чего не понимаю с помощью массива. В самом деле, я создал массив, который я заполнил пустыми подматрицами, чтобы получить 2D-матрицу. Но когда я манипулирую массивом, он не ведет себя так, как я ожидал.Странное поведение массива, заполненного Array.prototype.fill()
var arr = new Array(5);
arr.fill([]);
arr[2].push("third rank item");
console.log(arr);
//[ [ 'third rank item' ],
// [ 'third rank item' ],
// [ 'third rank item' ],
// [ 'third rank item' ],
// [ 'third rank item' ] ]
Каждый свет по этому вопросу будет приветствоваться
Как вы ожидаете, что вести себя? – Feathercrown
Вы заполняете ** тот же ** пустой массив. Вместо этого вы можете попробовать 'Array.from (новый массив (5),() => [])'. –
@torazaburo Не могли бы вы объяснить это кратко? OP нацелил 3-й элемент во внешнем массиве и нажал строку, которая приводит к тому, что она нажимает строку во всех внутренних массивах. Немного смущает. –