zoukankan      html  css  js  c++  java
  • 数组的深拷贝与浅拷贝

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>数组的深拷贝与浅拷贝</title>
    </head>
    <body>
        <script>
            //数组的浅拷贝
            var arr1= [1,23,5,1,3];
            var arr2 = arr1;
            arr1[0] = 99;
            console.log(arr1[0]);
            console.log(arr2[0]);
            console.log(arr1);
            console.log(arr2);
            //数组的深拷贝
            var arr3 = arr1.concat();  //连接数组,如果连接的是一个空,那么也是返回了新的本身的数组
            console.log(arr3);
            arr1[0]= 100;
            console.log("arr1: "+arr1[0]);
            console.log("arr3: "+arr3[0]);
            console.log("arr1: "+arr1);
            console.log("arr3: "+arr3);
    
            var arr4 = arr1.slice(0);  //从0开始到末尾截取数组,然后返回一个新的数组
            arr1[0]= 88;
            console.log("arr1: "+arr1[0]);
            console.log("arr4: "+arr4[0]);
            console.log("arr1: "+arr1);
            console.log("arr4: "+arr4);
    
            var arr5 = arr1.map(function(value){  //使用map方法遍历数组然后返回新的数组,里面的值不变
               return value;
            })
            arr1[0]= 77;
            console.log("arr1: "+arr1[0]);
            console.log("arr5: "+arr5[0]);
            console.log("arr1: "+arr1);
            console.log("arr5: "+arr5);
    
            var [...arr6] = arr1//ES6扩展运算符实现数组的深拷贝
            arr1[0]= 66;
            console.log("arr1: "+arr1[0]);
            console.log("arr6: "+arr6[0]);
            console.log("arr1: "+arr1);
            console.log("arr6: "+arr6);
    
        </script>
    </body>
    </html>
    

      

  • 相关阅读:
    装箱、拆箱操作发生在
    @Data的注解使用以及在IDEA上安装
    Mysql中 BLOB字段转String的方法
    不属于java语言鲁棒性特点的是
    java object默认的基本方法
    哪个类可用于处理 Unicode?
    类和接口的继承
    抽象类的叙述:
    Hashtable 和 HashMap 的区别是:
    编程之美初赛第一场--焦距
  • 原文地址:https://www.cnblogs.com/shine1234/p/12986471.html
Copyright © 2011-2022 走看看