javascript - 在 JavaScript 中初始化一个二维数组

标签 javascript arrays

我想创建一个二维数组,该数组使用设置为 false 的 bool 值进行初始化。目前我正在使用这种数组创建方法:

const rows = 3
const cols = 5

const nestedArray = new Array(rows).fill(
    new Array(cols).fill(false)
)

nestedArray 看起来不错,但是一旦我更改了 nestedArray[0][2] 的值,nestedArray[1][ 2]nestedArray[2][2] 也发生了变化。

我猜这是因为子数组是相同的,可能是因为它们是通过引用而不是值填充到父数组中的。

创建一个由不同子数组组成的数组的优雅而有效的方法是什么?

最佳答案

您可以使用嵌套 Array.from()调用:

const rows = 3
const cols = 5

const nestedArray = Array.from({ length: rows }, () => 
  Array.from({ length: cols }, () => false)
);
  
nestedArray[0][1] = 'value'; // example of changing a single cell
  
console.log(nestedArray);

关于javascript - 在 JavaScript 中初始化一个二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50002593/

相关文章:

javascript - 调试时显示的 javascript 文件的旧版本(可能是缓存的)

java - 语法错误: missing ] after element list in jquery

java - 从另一个类调用 String[] 的空指针异常

javascript - Rails j 局部渲染

javascript - 使没有内容的div水平滚动

javascript - PHP:响应 AJAX post 请求

javascript - 查找对象数组中是否存在值(Angularjs)

c# - 未知大小的数组,包含具有可变数量的值/属性的项目

javascript - [] == ![] 计算结果为真

javascript - 如何确定数组的类型并在 JavaScript 中返回其重复或唯一的数字