js почему массив авто сортируется
нужен такой вложенный массив
[[1, 2, 3, 4, 5, 6, 7, 8, 9],
[2, 3, 4, 5, 6, 7, 8, 9, 1],
[3, 4, 5, 6, 7, 8, 9, 1, 2],
[4, 5, 6, 7, 8, 9, 1, 2, 3],
[5, 6, 7, 8, 9, 1, 2, 3, 4],
[6, 7, 8, 9, 1, 2, 3, 4, 5],
[7, 8, 9, 1, 2, 3, 4, 5, 6],
[8, 9, 1, 2, 3, 4, 5, 6, 7],
[9, 1, 2, 3, 4, 5, 6, 7, 8]]
let arr=[];
var a=[1,2,3,4,5,6,7,8,9];
arr[0]=a;
for (let i = 1; i < 9; i++) {
a.push(a.shift());
arr[i]=a;
console.log(arr[i]) //1
}
console.log(arr); //2
в первом выводе получается правильно, а во втором так:
[1, 2, 3, 4, 5, 6, 7, 8, 9],
[1, 2, 3, 4, 5, 6, 7, 8, 9],
[1, 2, 3, 4, 5, 6, 7, 8, 9],
[1, 2, 3, 4, 5, 6, 7, 8, 9],
[1, 2, 3, 4, 5, 6, 7, 8, 9],
[1, 2, 3, 4, 5, 6, 7, 8, 9],
[1, 2, 3, 4, 5, 6, 7, 8, 9],
[1, 2, 3, 4, 5, 6, 7, 8, 9],
[1, 2, 3, 4, 5, 6, 7, 8, 9]
почему? есть автосортировка массива?
Ответы (1 шт):
Автор решения: user7860670
→ Ссылка
У вас создается один массив из 10 элементов. На каждой итерации цикла вы переставляете в нем первый элемент в конец и вставляете ссылку на этот массив в arr. Соответственно в итоге вы получаете arr содержащий 10 ссылок на один и тот же массив.