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