• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

老王的蜕变

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

js数组深度克隆

 1 var a =[],b=[];
 2 a[0]={name:'w',text:2};
 3 a[1]={name:'a',text:3};
 4 a[2]={name:'b',text:4};
 5 b =a.cloneArray();
 6 function objClone(myObj){
 7     if(typeof(myObj) != 'object') return myObj;
 8     if(myObj == null) return myObj;
 9     var myNewObj = new Object();
10     for(var i in myObj)
11     myNewObj[i] = objClone(myObj[i]);
12     return myNewObj;
13 }
14   Array.prototype.cloneArray=function(){//为数组添加克隆自身方法,使用递归可用于多级数组
15     var newArr=new Array();
16     for(var i=0;i<=this.length-1;i++)
17     {
18        var itemi=this[i];
19        if(itemi.length && itemi.push) itemi= itemi.cloneArray();//数组对象,进行递归
20        else if(typeof(itemi)=="object") itemi=objClone(itemi);//非数组对象,用上面的objClone方法克隆
21        newArr.push(itemi);
22     }
23     return newArr;
24   }

 

posted on 2013-04-17 15:10  老王的蜕变  阅读(279)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3