生成数组的方式有很多,最常用的就是字面量的方式:[1,2,3],但是这里很明显不能手写100个元素😏
很容易想到使用Array方法来构造。
注意参数类型和数量的区别:
1 | new Array(5) // [empty * 5] |
自然使用new Array(100)
来构造,然后使用map方法返回元素索引,但是map对于空位的处理默认会跳过并保留这个值。
所以:
1 | new Array(100).map((item, index) => index) // [empty * 100] |
ES5 对空位的处理,已经很不一致了,大多数情况下会忽略空位
- forEach(), filter(), reduce(), every() 和some()都会跳过空位。
- map()会跳过空位,但会保留这个值
- join()和toString()会将空位视为undefined,而undefined和null会被处理成空字符串。
这时我们可以使用fill方法来填补空位。(注意fill会覆盖填充,即便索引位置有值也仍会被覆盖)
最后:
1 | // 无参数fill方法会填充undefined,这会被map识别 |