javascript - 如何在 javascript 中创建一个二维零数组?

标签 javascript multidimensional-array

有没有一种简单的方法可以在 javascript 中以编程方式创建二维数组?

我不想要的:

var array2D = [ 
  [0,0,0],
  [0,0,0],
  [0,0,0]
]

最佳答案

2017 年解决方案:

聚会迟到了,但这篇文章在 Google 搜索结果中仍然排在前列。

创建具有给定大小的二维数组(可适应更多维度):

let array = Array(rows).fill().map(() => Array(columns));

预填充二维数组:

let array = Array(rows).fill().map(() => Array(columns).fill(0));

例如:

Array(2).fill().map(() => Array(3).fill(42));
// Result:
// [[42, 42, 42],
//  [42, 42, 42]]

警告:

Array(rows).fill(Array(columns)) 将导致所有行都是对同一数组的引用!!


2018 年 9 月 24 日更新(感谢@Tyler):

另一种可能的方法是使用 Array.fill() 来应用 map 函数。

例如:

Array.from(Array(2), _ => Array(3).fill(43));
// Result:
// [[43, 43, 43],
//  [43, 43, 43]]

基准:

https://jsperf.com/multi-dimensional-array-map-vs-fill/5

关于javascript - 如何在 javascript 中创建一个二维零数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3689903/

相关文章:

C - 将动态分配的 3D 矩阵传递给函数

C++ 多维字符串数组初始化 (std::map)

javascript - 在输入标签内使用 html

javascript - 如何发起和处理 POST 请求

c++ - 如何在 2^30 位内存中高效访问 3^20 个 vector

vba - 如何删除包含对象和数字的多维变量数组

javascript - 奇数测试

javascript - SignalR 身份验证 - 处理未授权的情况

javascript - 将日期/时间设置为 00 :00:00

c - 如何在C中的二维数组中找到具有相同值的邻居?