zoukankan      html  css  js  c++  java
  • jquery 深度拷贝对象、数组

    网上一搜也有很多js深度拷贝的解决方案,但由于项目基本都会用到jquery,那些解决方案基本都会跟jquery有冲突,所以起不了作用,这里介绍下jquery的深度拷贝,也是参考网上的资料来的;
     
    深拷贝与浅拷贝对象:

    // 浅层复制(只复制顶层的非 object 元素) 
    var newObject = $.extend({}, oldObject); 

    第一参数为目标对象,第二个参数为被拷贝对象,拷贝完将第一个参数作为返回值


    // 深层复制(一层一层往下复制直到最底层) 
    var newObject = $.extend(true, {}, oldObject); 第一个参数表示是否进行深拷贝

    深拷贝与浅拷贝数组:

    //浅拷贝

    $.map(json, function (n) { return n; }); 

    如:

    jQuery 代码:

    $.map( [0,1,2], function(n){
    return n + 4;
    });

    结果:

    [4, 5, 6]

    回调函数会遍历数组的每一个对象,如果数组里是对象而不是基本类型的话,返回的数组里的对象跟原来数组里的对象是一样的,引用的是同一个对象;

     

    //深拷贝

    数组深拷贝是将数组浅拷贝与对象深拷贝结合后得到的解决方案:

    jQuery 代码:

    $.map( [obj1,obj2,obj3], function(obj){
    return $.extend(true,{},obj);//返回对象的深拷贝
    });

     

  • 相关阅读:
    config Doku wiki
    [转载]【python】ipython与python的区别
    数组和指针
    C++初始化数据成员
    RSA算法原理
    C++四种cast
    百度笔试准备2
    百度笔试准备1
    百度面试准备
    C++的空类中默认产生哪些类成员函数
  • 原文地址:https://www.cnblogs.com/kongwen/p/4365071.html
Copyright © 2011-2022 走看看