【发布时间】:2019-03-06 13:27:04
【问题描述】:
我有一个创建子数组数组的函数。它需要三个参数:要在数组中创建的子数组数量 (numSub)、所需值在每个子数组中出现的次数 (numValue) 以及所需值 (value)。
例如,如果我要使用(3, 2, test) 调用函数,我想要以下输出:
Array [Array ["test", "test"], Array ["test", "test"], Array ["test", "test"]]
这是我写的函数:
function subarrs(numSub, numValue, value) {
let arr = [];
for (let i = 0; i < numSub; i++) {
arr.push([]);
}
arr.forEach(function(sub) {
sub.fill(value, 0, numValue - 1);
});
return arr;
}
console.log(subarrs(3, 2, 'test'));
我循环了numSub 变量,并在每次迭代时将一个数组插入arr。这是成功的。 (Array [Array [], Array [], Array []])
然后我使用forEach 循环在每个子数组中填充value,从索引0 开始,到索引numValue - 1 结束(因为该值的第二次出现实际上是在索引1 处。)
但是,该功能无法按预期工作。我收到的不是上述所需的输出,而是:
Array [Array [], Array [], Array []]
【问题讨论】:
标签: javascript arrays for-loop foreach