請你告訴我合併兩個陣列,你有多少種方法

weixin_34148340發表於2018-04-19

合併兩個陣列是一個很簡單的需求,但是很多人只知道concat方式。今天我幫大家總結一下合併陣列的常見方式。

01

常見的方法

1.concat

這是每一個JavaScript入門程式設計師都知道的方法,使用方式如下:

let arr1 = [1,2];
let arr2 = [3,4];
console.log(arr1.concat(arr2));
5013160-dcdcf8117c7f664e.png
image.png

1.for迴圈push新增

let arr1 = [1,2];
let arr2 = [3,4];

arr2.forEach(x=>arr1.push(x));
console.log(arr1);
5013160-10b1658f9f2f2733.png
image.png

一些剛接觸JavaScript的同學可能會寫成這種迴圈:

let arr1 = [1,2];
let arr2 = [3,4];

for (let i =0; i<arr2.length;i++){
  arr1.push(arr2[i])
}
console.log(arr1);

5013160-1d78018e1b7a2a54.png
image.png

結果都是一樣的,對ES6不瞭解的同學可以參考小專欄ES6小冊子

02

不太常見的方法

1.map

map方法在這裡其實只是起到了遍歷陣列的作用。

let arr1 = [1,2];
let arr2 = [3,4];

arr2.map(x=>arr1.push(x));
console.log(arr1);
5013160-352daefbc806008b.png
image.png

既然map只是起到了遍歷陣列的作用,那麼其他能做到遍歷陣列的方法例如every,filter也是可以的。

let arr1 = [1,2];
let arr2 = [3,4];

arr2.every(x=>arr1.push(x));
arr2.filter(x=>arr1.push(x));
console.log(arr1);
5013160-2f2c685bb1ffc6de.png
image.png

2.擴充套件運算子

擴充套件運算子是ES6的新功能,它的作用是把物件或陣列的元素展開。這也給合併陣列提供了一個及其簡便的正規化。

let arr1 = [1,2];
let arr2 = [3,4];
arr1 = [...arr1,...arr2]
console.log(arr1);
5013160-c13cf93dbfda9037.png
image.png

有其他方式,歡迎你給我留言。

相關文章