JS数组及对象的深拷贝

1. 浅层的数组或对象拷贝(也就是数组中不包含对象或数组)
****1.1 通过slice或者concat方法****
例如:数组2复制数组1

    var arr2 = arr1.slice(0);
    var arr2 = arr1.concat();

****1.2 遍历数组或对象方法****

    var simpleCopy = function(o){
         if (o instanceof Array) 
         { 
                var n = []; 
                for (var i = 0; i < o.length; ++i)
                    n[i] = o[i];  
                return n; 
          } 
          else if (o instanceof Object) 
          { 
                var n = {} ;
                for (var i in o) 
                      n[i] = o[i];
                return n; 
          }
     }

2. 实现拷贝包含对象或者数组的这种情况呢?那么就通过递归拷贝来实现。

  var deepCopy = function(o) { 
       if (o instanceof Array)
       { 
             var n = [];
             for (var i = 0; i < o.length; ++i) 
                   n[i] = deepCopy(o[i]); 
             return n; 
       } 
      else if (o instanceof Object) 
      {     
            var n = {} ;
            for (var i in o) 
                n[i] = deepCopy(o[i]); 
           return n; 
      } 
      else    return o; 
  }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1.背景介绍 什么是栈内存和堆内存? JavaScript中的变量的存放有有原始值与引用值之分,原始值代表了原始的...
    lx2487阅读 3,402评论 0 2
  • 大家好,我是IT修真院成都分院第7期的学员韩建名,一枚正直纯洁善良的WEB前端程序员。 1.背景介绍 在使用Jav...
    inh_阅读 431评论 0 0
  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,691评论 0 4
  • 收拾好行李,准备出发。 其实我不是一个特别爱玩的人,平时周六日休息也基本上宅在家里,要不就是去逛街,去公园,游乐园...
    薄荷的自由未来阅读 181评论 0 0
  • 本文是新精英《职场MVP》部分课程的笔记及个人感悟总结。 职位调研 职业的选择不止考虑当前的性价比,更要考虑持续的...
    马骋阅读 1,169评论 0 1

友情链接更多精彩内容