<分区>
我最近发现映射一个未初始化的数组似乎并不像我预期的那样有效。使用此代码:
function helloMap(value, index) {
return "Hello " + index;
}
console.clear();
var initialArray = Array.apply(null, new Array(5));
console.log("Array initialised with apply:");
console.log(initialArray);
console.log(initialArray.map(helloMap));
var normalArray = new Array(5);
console.log("Array constructed normally");
console.log(normalArray);
console.log(normalArray.map(helloMap));
.as-console-wrapper {
max-height: 100% !important;
}
尽管每个数组的第一个输出是 [undefined, undefined, undefined, undefined, undefined]
,但我得到了不同的结果。
我得到不同结果的事实意味着这两个数组中的 undefined
实际上是不同的。首先我怀疑数组中有 5 个项目,每个项目都是未定义的。在第二个数组中有 5 个项目,但什么都没有,甚至没有未定义的......
这有点令人困惑。
谁能给我解释一下?