Javascript不清不楚之concat

Array.prototype.concat

代码均来自:MDN

此方法用来合并多个数组,不会改变原有的数组,返回一个新的数组(根据提供的数组做浅拷贝生成新数组)
注意:数组/值在连接时保持不变。此外,对于新数组的任何操作(仅当元素不是对象引用时)都不会对原始数组产生影响,反之亦然

  • 多个值或者数组合并
var arr = [1, 2, 3];
var res = arr.concat(4, [5, 6], [[7, 8], [9, 10]], {});
console.log(arr);   // [1, 2, 3]
console.log(res);   // [1, 2, 3, 4, 5, 6, Array(2), Array(2), {}]
//如果合并项是原子类型则直接push到arr,如果是数组则将数组里的元素挨个push到arr, 其他类型直接push
  • 合并嵌套数组
var arr1 = [[1, 2, 3], 4, 5], arr2 = [6, 7];
var res = arr1.concat(arr2);
arr1[0][0] = 11;
console.log(res);       // [[11, 2, 3], 4, 5, 6, 7]
console.log(arr1);      // [[11, 2, 3], 4, 5]
//由此可见arr1和arr2都是浅拷贝合并到了新书中res中,更改arr1的第一个引用型元素的值也反馈到了res中
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值