需要一个嵌套数组
[[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]
为什么?有数组自动排序吗?
您创建一个包含 10 个元素的数组。在循环的每次迭代中,您将其中的第一个元素重新排列到末尾,并在
arr. 因此,最后你会得到arr包含对同一数组的 10 个引用。