打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
javascript复制数组
首先下面的一段是网上经常说的错误实现:
不少人可能直接就用等号进行赋值了:
 
var array1 = new Array("1","2","3"); 
var array2; 
array2 = array1; 
array1.length = 0; 
alert(array2); //返回为空
这种做法是错的,因为javascript分原始类型与引用类型(与java、c#类似)。Array是引用类型。array2得到的是引用,所以对array1的修改会影响到array2。
然后是正确的方法:
 
可使用slice()进行复制,因为slice()返回也是数组。
 
var array1 = new Array("1","2","3"); 
var array2; 
array2 = array1.slice(0); 
array1.length = 0; 
alert(array2); //返回1、2、3 
 
而我要说的其实是对上面的一个补充。
比如一个数组。
var myList = [];
var itemList = [];
itemList[0] = new item(1,'第一个');
myList[myList.length] = new myInfo('1','我的第一个信息',itemList); //这里的itemList又是一个数组
 
function item(id,name) {
   this.id = id;
   this.name = name;
}
于是在此情况下单纯的使用slice复制数组就不行了。因为这些个对象也是引用。
所以要想复制这样的数组。就需要如此:
var Extend = function(destination, source) {
      for (var property in source) {
            destination[property] = source[property];
      }
      return destination;
}
var tmpList = [];  //新的数组
for(var obj in myList) {
      tmpList [tmpList .length] = Extend(null,obj);     //extent的第一个参数是目标对象,第二个是原对象

}
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Scala入门教程
js 随机取数组元素
python怎么创建数组
博客园 - 鸟食轩 - 比较JavaScript中的集合及其检索效率
JavaScript中var arr=new Array()和var arr=[] 的区别 | 司马...
11种JavaScript生成1到100的数组的方式汇总
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服