JS---数组合并

本文探讨了在JavaScript中如何优雅地合并数组,包括使用concat和jQuery的extend方法。对于对象元素,需要考虑是否进行深拷贝以避免影响原数组。通过$.extend(true, [], ...)可以实现深拷贝并合并数组,而$.extend(false, [], ...)则是浅拷贝。" 124837660,14066890,Linux环境下ECShop部署全攻略,"['Linux', 'CentOS', 'Web服务器', '数据库管理', '电商系统']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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,否则也影响。。终究是浅拷贝。


     




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值