我想創建一個二維數組,但我發現一個有趣的現象使用新的Array()。創建二維數組fill(0)bug?
const column = 10;
const row = 10;
let matrix = new Array(row).fill(new Array(column).fill(0));
matrix[0][1] = 1;
console.log(matrix)
讓我吃驚,我得到的結果如下:
0 2 0 0 0 0 0 0 0 0
0 2 0 0 0 0 0 0 0 0
0 2 0 0 0 0 0 0 0 0
0 2 0 0 0 0 0 0 0 0
0 2 0 0 0 0 0 0 0 0
0 2 0 0 0 0 0 0 0 0
0 2 0 0 0 0 0 0 0 0
0 2 0 0 0 0 0 0 0 0
0 2 0 0 0 0 0 0 0 0
0 2 0 0 0 0 0 0 0 0
整列1號設定爲1,我可以知道爲什麼我會得到這種行爲?
所有數組元素都指單個數組 –
@PranavCBalan你是否介意更多? – Tim
'new Array(column).fill(0)'創建一個長度爲'column'且元素爲'0'的數組。 '新的數組(行).fill(....)'它填充你創建的數組,而不是爲每個數組創建不同的數組...而是引用數組作爲元素 –