一篇文章掌握多种数组合并方法

220 阅读1分钟

1.es6的...扩展运算

(1)写法一:

 var a = [1, 2, 3];
 var b = [3, 4, 5];
 b.push(...a);

(2)写法二:

 var a = [1, 2, 3];
 var b = [3, 4, 5];
 var c=[...a,...b];

 

2.concat()方法

两个数组不会被改变,会生成新的数组,多存合并时会造成内存浪费

 

(1)写法一:

 var a = [{ index: 1 }, { index: 2 }, { index: 3 }];
 var b = [{ index: 4 }, { index: 5 }, { index: 6 }];
 var c=a.concat(b);

3.for循环遍历插入

 var a = [{ index: 1 }, { index: 2 }, { index: 3 }];
 var b = [{ index: 4 }, { index: 5 }, { index: 6 }];
 for(let item of a){
      b.push(item)
   }

4.apply()方法

函数的apply方法有一个特性,那就是func.apply(obj,argv),argv是一个数组

使用Array.prototype.push.apply(a,b)  或者 a.push.apply(a,b);

 

1.写法一:

 var a = [{ index: 1 }, { index: 2 }, { index: 3 }];
 var b = [{ index: 4 }, { index: 5 }, { index: 6 }];
 Array.prototype.push.apply(a, b);

2.写法二:

 var a = [{ index: 1 }, { index: 2 }, { index: 3 }];
 var b = [{ index: 4 }, { index: 5 }, { index: 6 }];
 a.push.apply(a,b)

5.map()

var a = [{ index: 1 }, { index: 2 }, { index: 3 }];
var b = [{ index: 4 }, { index: 5 }, { index: 6 }];
a.map(item => {
     b.push(item);
 });