我觉得很奇怪
Array(100).map(function (_, i) { return i + 1; })
返回[undefined, undefined, ... , undefined]
而不是[1, 2, ..., 100]
,i。即映射没有发生。相反,从100 undefined
的数组开始(demo)。
Array(100)
是否会返回100 undefined
个元素以外的其他内容?
答案 0 :(得分:5)
来自Array.prototype.map
reference:
“仅对已分配的数组的索引调用回调 值;对于未定义的索引,不会调用它 已删除或从未分配过值。“
使用Array(100)
创建的数组长度为100,但其中没有项目。另一方面,包含100个undefined
项的数组有100个具有值的项(即值undefined
),因此将为每个项调用回调。