【ES6】数组新特性

扩展运算符

扩展运算符:将数组转换为逗号隔开的参数列表

    //扩展运算符
    
    function fn(x, y, z) {
        console.log(x, y, z);
    }
    var arr = [1,2,3];
    fn(...arr);     //调用fn函数, 传入arr的参数

应用

1. 复制数组

    //复制数组
    var arr1 = [1,2,3];
    var arr2 = [...arr1];

2. 合并数组

    //合并数组
    var a = [1,2,3];
    var b = [4,5,6];
    var c = [7,8,9];
    var d = concat(b,c);    //ES5
    var e = [...a,...b,...c]; //ES6

3. 用于解构赋值

    //用于解构赋值
    let [a,b,...args] = [1,2,3,4,5];

4. 用于字符串

    //用于字符串
    let arr = [..."hello"];

Array构造函数新增方法

1. Array.from()        

        将数组转换为纯数组

    // 将类数组转化为纯数组
    
    let ps = document.getElementsByTagName("p");
    // 方法1.Array.from()
    arr = Array.from(ps);
    // 方法2.解构赋值
    let arr = [...ps];

2. Array.of(a,b,c)

        将参数列表返回一个数组

        相当于创建数组

        Array.of(3) !== new Array(3)

        Array.of(3): 创建元素为3的数组

        new Array(3): 创建长度为3的数组

数组对象新增方法

1. find(callback)

        返回数组中第一个满足条件的元素,return真时返回结果

    //返回 第一个val>10的元素
    let arr = [9, 16, -9, 7, 56];
    var result = arr.find(val => val>10);
    console.log(result);    //16

2. findIndex(callback)

        返回数组中第一个满足条件的元素的索引

    //返回 第一个val>10的元素的索引
    let arr = [9, 16, -9, 7, 56];
    var result = arr.findIndex(val => val>10);
    console.log(result);    //1

3. entries()

        帮助数组遍历每一个key值与value值

    //返回数组的key(数组中的索引下标) 与 value
    let arr = [9, 16, -9, 7, 56];
    for(let [key,value] of arr.entries()){
        console.log(key, value);
    }
    // output:
    // 0 9
    // 1 16
    // 2 -9
    // 3 7
    // 4 56

4. keys()

        帮助数组遍历所有的key值 (数组中的索引值)

5. includes()

        检索数组是否包含某个值,返回布尔值

    // 检测数组中是否包含7
    let arr = [9, 16, -9, 7, 56];
    var result = arr.includes(7);
    console.log(result);        //true

6.  Array.isArray(arr)        

        判断 是否是数组,返回布尔值

7.  filter(callback)     

        过滤数组单元,将满足条件的元素过滤

        自动将每一个元素放入callback中进行处理,如果返回值为true,将元素放入新数组中,否则不存在

        callback  === function(value,index){}

        形参val,代表数组中的每一个值

        形参index,代表数组中每一个值得下标

    //过滤数组中 小于0 的元素
    let arr = [9, 16, -9, 7, -56];
    var result = arr.filter( val => val>0);
    console.log(result);    //[9, 16, 7]

8. map(callback)

        对数组进行遍历,将计算后的值返回新数组

    // 将数组元素的值 *2
    let arr = [9, 16, -9, 7, -56];
    var result = arr.map(val => val*2);
    console.log(result);    // [18, 32, -18, 14, -112]

9. some(callback)

        对数组进行遍历,只要有一个满足条件,则返回true,并终止遍历,否则返回false

    // 检测 大于0 的元素
    let arr = [9, 16, -9, 7, -56];
    var result = arr.some( val => val>100 );
    console.log(result);        // false

10. every(callback)

        对数组进行遍历,如果有一个不满足条件,则返回false,并终止遍历,否则返回true

    // 检测 大于0 的元素
    let arr = [9, 16, -9, 7, -56];
    var result = arr.every( val => val>0 );
    console.log(result);    //false

11. reduce(function(preValue, nowValue, index, arrSelf))   {    return preValue + nowValue;     }

        累加数组单元

        preValue:上一个值

        nowValue:当前值

        index:当前值下标

        arrSelf:当前数组

    // 数组求和
    let arr = [9, 16, -9, 7, -56];
    var result = arr.reduce((preval, nowval) => preval += nowval);
    console.log(result);    //-33

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值