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