zoukankan      html  css  js  c++  java
  • js 克隆数据 (数组的深浅拷贝)

    var a1 = [1,2,3];

    var a2 = a1;

    a2[0] = 90;

    console.log(a1[0]) //90

    解析:数组是复合的数据类型,直接复制的话,只是复制了指向底层数据结构的指针,而不能克隆一个全新的数据;

    上面的代码中,a2并不是a1的克隆,而是指向同一分数据的另一个指针。修改a2,会直接导致a1的变化。

    es5 可以同过下面的方法来克隆一个新的数组:

    方法1:

    var a1 = [1, 2, 3];
    var a2 = a1.concat();
    a2[0] = 90;
    console.log(a1[0]) //1
    方法2:
    var a1 = [1, 2, 3];
    var a2 = JSON.parse(JSON.stringify(a1));
    a2[0] = 90;
    console.log(a1[0]) //1
     
    es6克隆一个新的数组的方法:
    const a1 = [1,2,3];
    写法一:
    const a2 = [...a1];
    写法2 :
    const [...a2] = a1;
     
     
  • 相关阅读:
    视图集
    子类视图
    Mixin扩展类
    GenericAPIView
    APIView
    ModelSerializer使用
    序列化和反序列化
    合并购物车
    pyplot基本绘制
    STL sort “invalid operator <”
  • 原文地址:https://www.cnblogs.com/jkr666666/p/7930228.html
Copyright © 2011-2022 走看看