JavaScript - 合并两个数组
2019-10-29 本文已影响0人
ElricTang
合并数组a、b
let a = [1,2,3];
let b = [4,5,6];
一. concat(),返回新数组,不改变原数组。
let c = a.concat(b);
console.log(c);// [ 1, 2, 3, 4, 5, 6 ]
console.log(a);// [ 1, 2, 3 ]
console.log(b);// [ 4, 5, 6 ]
二. 循环添加,改变原数组。
for(let i = 0;i < b.length;i++){
a.push(b[i]);
}
console.log(a);// [ 1, 2, 3, 4, 5, 6 ]
三. 高阶函数map()、reduce()
- map(),循环的美化版,同样改变原数组
b.map((i)=>{
a.push(i);
})
console.log(a);
- reduce(),感觉复杂化了,同样改变原数组
let c = b.reduce((pre,cur)=>{
pre.push(cur);
return pre;
},a)
console.log(c);// [ 1, 2, 3, 4, 5, 6 ]
console.log(a);// [ 1, 2, 3, 4, 5, 6 ]
console.log(b);// [ 4, 5, 6 ]
四. apply(),改变原数组
- 利用apply(args1,arr)的特点
a.push.apply(a,b);
console.log(a);// [ 1, 2, 3, 4, 5, 6 ]
- 或者这样
Array.prototype.push.apply(a,b);
五. ES6扩展运算符,返回新数组,不改变原数组
console.log([...a,...b]);// [ 1, 2, 3, 4, 5, 6 ]