这个问题已经在这里有答案 :
我觉得很奇怪,
Array(100).map(function (_, i) { return i + 1; })
返回[undefined, undefined, ... , undefined]
而不是[1, 2, ..., 100]
即,映射没有发生。 相反,从100件数组undefined
作品( 演示 )。
请问Array(100)
返回除100个以外的其他undefined
因素?
这个问题已经在这里有答案 :
我觉得很奇怪,
Array(100).map(function (_, i) { return i + 1; })
返回[undefined, undefined, ... , undefined]
而不是[1, 2, ..., 100]
即,映射没有发生。 相反,从100件数组undefined
作品( 演示 )。
请问Array(100)
返回除100个以外的其他undefined
因素?
从Array.prototype.map
参考 :
“回调仅对于已分配的值的数组的索引调用;它不被调用该未定义,那些已被删除或已从未被分配的值的索引。”
您使用创建的阵列Array(100)
具有100的长度,但目前还没有在它的项目。 含有100项的数组被undefined
另一方面有100项具有一个值(即值undefined
),所以回调将被称为用于每个。