如何从脚本数组调用映射函数

为什么这里没有调用 ?map()


let N = 16;

let fullSizeBufs = Array(2).map((x) =>

  Array(N).fill(-1)

)

console.log(fullSizeBufs)

我们得到


[undefined, undefined]

我甚至在上放了一个断点:它没有命中。只是跳过了。正确的语法是什么?Array(N).fill(-1)map()


潇潇雨雨
浏览 155回答 2
2回答

心有法竹

您必须填充第一个数组,否则 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

您可以将 spread 运算符与第一个数组结合使用,以使其可迭代。let N = 16;let fullSizeBufs = [...Array(2)].map((x) =>  Array(N).fill(-1))console.log(fullSizeBufs)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript