es6 数组的扩展

1. 扩展运算符(spread) ...

  • 有序集合
    {
        let arr = [1, 2, 3, 4, 5];
        console.log(...arr);   // 1 2 3 4 5
        let [a, b, ...c] = arr;
        console.log(c);        // [3,4,5]
    }

2. ... 的应用:

应用1: 可以当做 可变参数数组 arguments 使用
    {
        let fn1 = (...arr) => {
            // arguments
            console.log(arr);    //[1, 2, 3, 4, 5]
            console.log(arr[0]);    // 1
        }
        fn1(1, 2, 3, 4, 5);
    }
应用2: 数组深拷贝

常见三种拷贝方式 :

    1. for循环  
    1. 数组操作方法concat
    1. ... 扩展运算符**
        let arr = [1, 2, 3, 4, 5];

        // 1. for循环 
        let arr1 = [];
        for (let i = 0; i < arr.length; i++) {
            arr1[i] = arr[i];  
        }
        arr1.push(6);
        console.log(arr1, arr); //  [1, 2, 3, 4, 5, 6] [1, 2, 3, 4, 5]

        // 2. 数组操作方法:concat();
        let arr2 = [].concat(arr); 
        arr2.push(6);
        console.log(arr2, arr);  //  [1, 2, 3, 4, 5, 6] [1, 2, 3, 4, 5]

        // 3. ...
        let arr3 = [...arr];    
        let [...arr4] = arr;
        arr3.push(6);
        arr4.push(7);
        console.log(arr3, arr);  //  [1, 2, 3, 4, 5, 6]  [1, 2, 3, 4, 5]
        console.log(arr4, arr);  // [1, 2, 3, 4, 5, 7]  [1, 2, 3, 4, 5]

3. 数组的拼接:

      let arr = [1, 2, 3];
      let arr1 = [4, 5, 6];
      let arr2 = [...arr,...arr1];
      console.log(arr2);    // [1, 2, 3, 4, 5, 6]
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容