zoukankan      html  css  js  c++  java
  • ES6复制数组

    ES6复制数组和合并数组

    一、复制数组与合并数组

      复制数组:它是复合数据类型,直接复制只是复制了指向底层数据结构的指针,而不是复制一个全新的数组

      

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8">
            <title>数组的扩展</title>
        </head>
        <body>
        </body>
        <script type="text/javascript">
            /* 
                1、扩展运算符:扩展运算符(spread)是三个点,类似rest参数的逆运算,将一个数组转换为逗号分隔开的参数序列
            *****/
            console.log(...[1, 2, 3]);
    
            // 主要用于函数的的调用
            function push(arr, ...items) {
                // 函数的调用,使用扩展运算符,该运算符将一个数组变为参数序列
                arr.push(...items);
            }
    
            function add(x, y) {
                return x + y;
            }
            const number = [4, 354];
            // 函数的调用,使用扩展运算符,该运算符将一个数组变为参数序列
            let a = add(...number);
            console.log(a)
    
            /* 
                2、替代函数的apply方法
            *****/
            // (1)扩展运算符可以展开数组,所以不需要apply方法将数组转换为函数的参数
            // es5:
            let arr1 = [0, 1, 2, 3];
            let arr2 = [5, 6, 4, 3, 2];
            console.log(arr1.push(...arr2))
    
            /* 
                3、扩展运算符的应用
            *****/
            // (1)复制数组:复合数据类型,直接复制只是复制了指向底层数据结构的指针,而不是复制一个全新的数组
            const a1 = [1, 2, 3];
            const a2 = a1;
            // a2[0]=20;
            // a2并不是a1克隆的,而是指向同一份数据的另一个指针,修改a1时a1也会跟着改变
            a1; //20, 2, 3
    
            // 解决方法:es5
            const a3 = a1.concat();
            // 修改a3的同时不会改变a1
            a3[0] = 20;
            a1 //[1, 2, 3]
            // es6:克隆方法(2种)
            const a4 = [...a1];
            const [...a5] = a1;
    
            /* (2)合并数组*/
            const array1 = [1, 2];
            const array2 = ['zhou', 'zhou'];
            const array3 = ['z', 'zou'];
            // es5
            array1.concat(array2)
            // es6
            console.log([...array1, ...array2,...array3])
        </script>
    </html>

      

  • 相关阅读:
    树状数组 浅显学习
    主席树 浅显学习
    B
    python测试开发面试之深浅拷贝
    2020年全网最全的自动化测试面试题及答案--吊打面试官就靠它了!
    软件测试员这个工作怎么样?做软件测试员这个职业有什么好处吗?
    软件测试能干到多少岁?写给像我相同迷茫的人
    python+requests实现接口自动化
    Python+selenium自动化测试之浏览器基础操作
    如何用 Python 做自动化测试【进阶必看】
  • 原文地址:https://www.cnblogs.com/xiaozhou223/p/11733124.html
Copyright © 2011-2022 走看看