Javascript:如何初始化二维数组

标签 javascript arrays

我认为初始化多维数组很容易:

row = Array(4).fill(0)
block = Array(4).fill(row)
block[2][2] = 15

但这只是创建一个单行数组,共 4 次,所以如果我分配 block[2][2] = 15,那么整列就是 15。

(4) [Array(4), Array(4), Array(4), Array(4)]
0:(4) [0, 0, 15, 0]
1:(4) [0, 0, 15, 0]
2:(4) [0, 0, 15, 0]
3:(4) [0, 0, 15, 0]

我尝试了 Array(4).fill(Array(4).fill(0)) 但结果相同。

最佳答案

您可以编写一个辅助函数来初始化您的二维数组。例如:

const grid = (r, c) => Array(r).fill(null).map(r => Array(c).fill(null));

const g = grid(4, 4);
g[2][2] = 15;

console.log(g);

关于Javascript:如何初始化二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49354354/

相关文章:

javascript - 三、形状从绿色到红色

javascript类成员在子类中未定义

c -++组((int)(值[i])/10);它有什么作用..?在 C

c# - 如何在不复制的情况下从 char 数组创建字符串?

javascript - TypeError 没有正确读取属性

c - C 中的字符串数组

c# - 从 Javascript 函数调用 AppSettings 中的全局变量

javascript - 无法从 Controller 获取数据到 Vue 组件

javascript - 无法在模板中渲染 Vue-js

javascript - 从下拉列表中的数组中选择某个项目,然后将其显示为第一项并按字母顺序显示。