为什么 Array.map 似乎不适用于未定义值的数组

Why does Array.map not seem to works on an Array of undefined values

本文关键字:未定义 数组 适用于 不适用 Array map 为什么      更新时间:2023-09-26

这纯粹是使用 JavaScript 的灵活性练习。我正在尝试使用Javascript创建没有循环的整数数组,并以这种特定方式:

var a = Array(100).map(function(x, y) { return y + 1 });

我期望和整数数组 1 - 100。相反,它仍然未定义* 100?我什至无法从地图功能中控制台.log?

我从这篇很棒的帖子中使用 JavaScript 数组的序列中了解到,下面确实使用 Array.apply 实现了目标,我只是明白为什么需要它?

var a = Array.apply(0, Array(100)).map(function(x,y) { return y + 1 }); a

感谢您的任何见解:)

它主要用于内存空间优化目的,稀疏数组占用的内存空间较少。

它有点"标志"与未定义,以便您可以在不爆炸内存空间的情况下执行此类操作:

var a = [];
a[2014] = 0;
console.log(a.length); // 2015
console.log(a); // [undefined x 2014, 0]