美文网首页
创建0-100的数组

创建0-100的数组

作者: 回调的幸福时光 | 来源:发表于2018-03-12 20:22 被阅读286次

    传统法

    1.先创建长度为100的数组,然后循环赋值

    let arr = new Array(100);
    for(let i = 0;i< arr.length;i++){
      arr[i] = i;
    }
    
    1. 先创建一个空数组,依次push进去数值。
    let arr = [];
    for(let i = 0;i < 100;i++){
      arr.push(i);
    }
    

    Arry.from()

    Array.from()方法从一个类似数组或可迭代对象中创建一个新的数组实例。

    • 伪数组对象:
      拥有一个length属性和若干索引属性的任意对象。
      注意:string、数组也是对象,也符合。
    • 可迭代对象
      可以获取对象中的元素,如Map 和Set 等。

    Array.from({length: 100}) 创建的结果是 [undefined,...,undefined]。

    let arr = Object.keys(Array.from({length: 100}));
    

    Array.from(arrayLike, mapFn, thisArg)可以利用map函数。

    let arr = Array.from({length:100},(v,i) => i)
    

    apply()

    apply()方法调用一个函数,其具有一个指定的值,以及作为一个数组(或类似数组的对象)提供的参数。

    let arr = Object.keys(Array.apply(null,{length:100}));
    

    如何理解?

    function fn(){
      console.log(arguments);
    }
    fn.apply(null,{length:2});
    

    当通过apply()调用fn时,{length:2}会转换成数组形式的参数[undefined,undefined]。
    Array实际上也是一个函数,Array.apply(null,{length:100})可以看做是Array([undefined,...,undefined])

    数组实例方法keys()

    keys()是ES6中新增的对键名的遍历,返回一个遍历器对象

    let arr = Array.from(new Array(100).keys())
    

    解构赋值

    ... 将一个数组转为用逗号分割的参数序列。

    let arr = [...Array(100).keys()]
    
    let arr = [...Array.from({length:100}).keys()]
    

    不管是Array(100)还是Array.from({length:100}),keys()方法都能够获取到遍历器对象。


    compare.png

    相关文章

      网友评论

          本文标题:创建0-100的数组

          本文链接:https://www.haomeiwen.com/subject/gwdofftx.html