为什么这里没有调用 ?map()let N = 16;let fullSizeBufs = Array(2).map((x) => Array(N).fill(-1))console.log(fullSizeBufs)我们得到[undefined, undefined]我甚至在上放了一个断点:它没有命中。只是跳过了。正确的语法是什么?Array(N).fill(-1)map()
2 回答
心有法竹
TA贡献1866条经验 获得超5个赞
您必须填充第一个数组,否则 map 上没有要迭代的内容。Array 构造函数使用未定义的引用进行初始化,这与 [未定义、未定义、未定义] 不同,后者实际上是一个包含 3 个对未定义的引用的数组。
例如: 与[,,,].map(x=>console.log(x))[undefined,undefined,undefined].map(x=>console.log(x))
let N = 16;
let fullSizeBufs = Array(2).fill(0).map((x) =>
Array(N).fill(-1)
)
console.log(fullSizeBufs)
慕村225694
TA贡献1880条经验 获得超4个赞
您可以将 spread 运算符与第一个数组结合使用,以使其可迭代。
let N = 16;
let fullSizeBufs = [...Array(2)].map((x) =>
Array(N).fill(-1)
)
console.log(fullSizeBufs)
添加回答
举报
0/150
提交
取消
