我想创建一个二维数组,该数组使用设置为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);

09-28 02:08