【发布时间】:2019-12-22 04:05:47
【问题描述】:
如果我像这样初始化矩阵
x = [["O", "O", "O"], ["O", "O", "O"], ["O", "O", "O"]];
然后设置
x[0][1] = "X"
它返回
[ [ 'O', 'X', 'O' ], [ 'O', 'O', 'O' ], [ 'O', 'O', 'O' ] ]
如预期的那样
但是,如果我将矩阵初始化如下:
x = new Array(3).fill(new Array(3).fill('O'))
然后
x[0][1] = "X"
它给了我回报
[ [ 'O', 'X', 'O' ], [ 'O', 'X', 'O' ], [ 'O', 'X', 'O' ] ]
这是怎么回事?
【问题讨论】:
-
您正在用一个位于所有三个“外部”数组位置的数组来初始化“外部”数组。
-
而不是用 undefined 填充它,然后使用 map 填充它:
x = new Array(3).fill().map(a=>new Array(3).fill('O'));
标签: javascript