今天遇到一个需求,想创建一个长度为81的数组,数组的每个值都等于它的索引值。于是我用下面方法做
var arr = new Array(81) var arr2 = arr.map((item, index) => { return index }) console.log(arr2)
打印结果如下
可以看出arr2仍然是一个长度为81的没有值的数组。查阅map方法得知,map的回调函数只会在有值的索引上被调用,那些从来没被赋值或者被delete删除的索引不会调用。所以以上方法不可行。
记录一段较简单的处理代码
var arr = Array.apply(null, { length: 81 }).map((item, index) => index)
创建一个带有属性length为指定长度的对象,调用Array方法,为数组每个值赋值null,再使用map方法。