ES6允许我们以填补一定值的Array
:新阵列(_)填充(对象)不创建对象的新实例
function emptyRow() {
return new Array(9).fill(0);
}
该函数返回长度9的Array
,填充有只有零点:
>> emptyRow()
<< Array [ 0, 0, 0, 0, 0, 0, 0, 0, 0 ]
现在我想产生一个充满这些空行九的Array
。
function emptyMatrix() {
return new Array(9).fill(emptyRow());
}
然而,可替换的fill
调用九次,似乎调用它一次,填补由创建对象的新Array
九引用。当然,如果我在这些子数组中改变了一个值,那么对于所有的子数组,这个值在相同的索引处被改变。
有没有办法为每个条目创建一个新的对象?
使用'[...阵列(9)]图(emptyRow)' –
您使用的单个阵列作为用于'值。 fill',这意味着它将使用同一个数组填充数组九次,而数组是对象,这意味着它们通过引用一个值来传递,所以基本上最终会有九次相同的数组。 – adeneo
谢谢@Guedes,那就是我所需要的。 – GeckStar