JS---数组合并

来源:互联网 发布:阿里云 代码 code 编辑:程序博客网 时间:2024/04/29 04:22

1.在JS中,总是用到数组的合并,每次合并都要写一次for循环,非常的ugly,apply应用非常爽。

test:  a=[1,2,3]   b=[4,5,6]

(1)  for循环

for(var i in b){a.push(b[i]);}

(2) js 中Array容器concat方法,连接两个或多个数组,并返回结果

var c=a.concat(b)
但是返回的是新数组,造成内存的浪费。

(3) func.apply(obj.argv)

a.push.apply(a,b)
2.jQuery中extend相关介绍。

1》使用concat

        如果数组中的元素为对象,那么合并之后的对象仍指向原来的地址,即修改对象会影响两个数组。

        var a3=a1.concat(a2);  //合并

        var a4=a1.concat();  //浅拷贝

2》使用extend

      var arry3= $.extend(false,[],arry1,arry2)  浅复制下的合并,修改array1中的对象,arry3中也改变,同contact.

      var arry4=$.extend(true,[],arry1,arry2)  深复制下的合并,互不相干。

      var arry5=$.extend([],arry1)  拷贝数组,浅拷贝。

      var arry6=$.extend(true,arry1) 深拷贝 互不相干

      var obj1=$.extend({},obj)   // 如果obj只有一层,无引用新对象及数组则OK,否则也影响。。终究是浅拷贝。


     




0 0
原创粉丝点击