ES6--数组扩展

1.Array.of()

{
    let arr=Array.of(3,4,7,8,11);
    console.log(arr)
    // [3, 4, 7, 8, 11]
    let empty=Array.of();
    console.log(empty)
    //[]
}

Array.of() 方法创建一个具有可变数量参数的新数组实例,而不考虑参数的数量或类型。
Array.of() 和 Array 构造函数之间的区别在于处理整数参数:Array.of(7) 创建一个具有单个元素 7 的数组,而 Array(7) 创建一个包含 7 个 undefined 元素的数组。

2.Array.from(),将dom集合转化成数组,可以用forEach方法遍历

Array.from方法用于将两类对象转为真正的数组:类似数组的对象(array-like object)和可遍历(iterable)的对象(包括 ES6 新增的数据结构 Set 和 Map)。

{
    let p=document.querySelectorAll('p');
    let pArr=Array.from(p);
    pArr.forEach(function(item){
        console.log(item.textContent)
    })
    //111 222 333
    console.log(Array.from([1,3,5],function(item){return item*2}));
    //[2, 6, 10]
}

3.Array.fill()

{
    console.log('fill',[1,'a',undefined].fill(7))
    //[7, 7, 7]
   console.log('fill-2',['a','b','c'].fill(7,1,3));
    //["a", 7, 7] 从起始位置1开始结束位置3替换成7
}

4.Array的keys(),values(),entries()方法

keys()用来获取数组的下标,values()获取数组的值,entries()获取数组的下标和值

{
    for(let index of ['1','c','ks'].keys()){
        console.log(index)
    }
    //0 1 2
    for(let value of ['1','c','ks'].values()){
        console.log(value)
    }
    //1 c ks 有兼容性问题
    for(let [index,value] of ['1','c','ks'].entries()){
        console.log(index,value)
    }
    //0 1
    //2 c
    //3 ks
}

5.Array.copyWithin()

{
    console.log([1,2,3,4,5].copyWithin(0,3,4))
    //[4, 2, 3, 4, 5]
}

6.Array.find()和Array.findIndex()

数组实例的find方法,用于找出第一个符合条件的数组成员。它的参数是一个回调函数,所有数组成员依次执行该回调函数,直到找出第一个返回值为true的成员,然后返回该成员。如果没有符合条件的成员,则返回undefined。
数组实例的findIndex方法的用法与find方法非常类似,返回第一个符合条件的数组成员的位置,如果所有成员都不符合条件,则返回-1。

{
    console.log([1,2,3,4,5,6].find(function(item){
        return item>3;
    }))
    //4 注意find只找出第一个满足的值
    console.log([1,2,3,4,5,6].findIndex(function(item){
        return item>3;
    }))
    //3 返回符合条件的下标
}

7.Array.includes()

{
    console.log([1,2,NaN].includes(1))
    //true
    console.log([1,2,NaN].includes(NaN))
    //true
}

你可能感兴趣的:(ES6--数组扩展)