【发布时间】:2016-08-04 07:24:36
【问题描述】:
我想创建一个二维数组,但我发现了一个有趣的行为
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 你介意解释一下吗?
-
new Array(column).fill(0)创建一个长度为column且元素为0的数组。new Array(row).fill(....)填充您创建的数组,它不会为每个数组创建不同的数组...而是对数组的引用充当元素
标签: javascript arrays