合规国际互联网加速 OSASE为企业客户提供高速稳定SD-WAN国际加速解决方案。 广告
>[success] # 创建数组总结 ~~~ 1.阅读之前建议下面章节整体阅读完,这个章节可以理解成是一个微缩总结版本 ~~~ >[info] ## js 创建数组 几种方式 ~~~js 1.通过new Array 创建数组,创建数组分下面三种情况,这里说明如果是像'arry2' 这种形式创建出来的数组 使用不了原因这种创建数组属于'稀松数组'ES5提供的forEach,map,filter等方法并不会遍历不存在的单元, 但是join方法由于内部实现的是for循环,因此并不存在这个问题,简单理解除了join剩下数组自带的循环方法 都用不了 const arry = new Array(1,2,3,4) // [ 1, 2, 3, 4 ] const arry1 = new Array('1') // [ '1' ] const arry2 = new Array(5) // [ <5 empty item> ] 2.利用apply 来创建数组 var a = Array.apply(null, {length:3}); // [undefined, undefined, undefined] 3.利用字面量形式创建数组 var a = [] 4.利用Array.of 创建数组,解决new Array 传入一个值如果是数字是生成对应长度数组问题 const arry = Array.of(5) // [ 5 ] const arry1 = Array.of(5,'5') // [ 5, '5' ] 5.利用 Array.from() 创建数组`Array.from(obj, mapFn, thisArg)`就相当于`Array.from(obj).map(mapFn, thisArg)` const arry = Array.from({length:5})  // [ undefined, undefined, undefined, undefined, undefined ] 6.const a = [] 使用length创建数组 a.length = 10 ~~~ >[danger] ##### 思考 ~~~ 1.上面几种常见的创建数组方法,可以生成占位长度的数组并且可以配合数组循环方法的'Array.from' 看起来是最好用的 2.在创建数组时候需要关心,'初始数组长度','数组中要填充项' ~~~ >[danger] ##### 简单案例 ~~~ const arithmeticProgression = (n,lim)=>Array.from({length:Math.ceil(lim/n)},(v,i)=>(i+1)*n) console.log(arithmeticProgression(5,25)) // [ 5, 10, 15, 20, 25 ] ~~~