ES6如何合併2個陣列 面試

2021-09-24 10:44:18 字數 827 閱讀 7446

##碰到一道面試題:es6如何合併2個陣列,其實也簡單,在這裡記一下:

比如:

var a = [1,2,3];

var b = [4,5,6];

有兩個陣列a、b,需求是將兩個陣列合併成乙個。方法如下:

1、concat

js的array物件提供了乙個叫concat()方法,連線兩個或更多的陣列,並返回結果。

var c = a.concat(b);//c=[1,2,3,4,5,6]
這裡有乙個問題,concat方法連線a、b兩個陣列後,a、b兩個陣列的資料不變,同時會返回乙個新的陣列。這樣當我們需要進行多次的陣列合併時,會造成很大的記憶體浪費,所以這個方法肯定不是最好的。

2、for迴圈

大概的思路是:遍歷其中乙個陣列,把該陣列中的所有元素依次新增到另外乙個陣列中。直接上**:

for(var i in b)
這樣的寫法可以解決第一種方案中對記憶體的浪費,但是會有另乙個問題:醜!這麼說不是沒有道理,如果能只用一行**就搞定,豈不快哉~

另外,還要注意兩個小問題:

1)以上2種合併方法並沒有考慮過a、b兩個陣列誰的長度更小。

所以好的做法是預先判斷a、b兩個陣列哪個更大,然後使用大陣列合併小陣列,這樣就減少了陣列元素操作的次數!

2)有時候我們不希望原陣列(a、b)改變,這時就只能使用concat了。

1.擴充套件運算子提供了陣列合併的新寫法。

ES6將兩個陣列合併成乙個物件陣列

有這麼兩個陣列 1 let metrodates 2 2008 01 3 2008 02 4 2008 03 ect 5 6 let figures 7 0,8 0.555,9 0.293,ect 10 想要這樣的結果 1 let result 2 3 4 ect 5 1 let result 2 ...

ES6將兩個陣列合併成乙個物件陣列

有這麼兩個陣列 1 let metrodates 2 2008 01 3 2008 02 4 2008 03 ect5 6 let figures 7 0,8 0.555,9 0.293,ect 10 想要這樣的結果 1 let result 2 3 4 ect 5 1 let result 2fo...

ES6個人筆記記錄 陣列擴充套件

擴充套件運算子 console.log 1,2,3,4 5 es5 console.log math.max.null,14,2,48 es6 let math console.log max 14,2,48 es5 var arr1 0 1,2 var arr2 3 4,5 console.log...