JS合併陣列的方法比較

2021-09-18 06:10:09 字數 754 閱讀 6597

目錄

一、concat

二、for迴圈

四、總結

有時候專案中會遇到需要合併兩個陣列的需求,如:

var a = [1, 2, 3];

var b = [4, 5, 6];

需要將上述兩個陣列a,b合併為乙個陣列c。

有如下3種方法可以實現:

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

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

遍歷其中乙個陣列,把該陣列中的所有元素依次新增到另外乙個陣列中。**:

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

1、以上3種合併方法並沒有考慮過a、b兩個陣列誰的長度更小。好的做法是預先判斷a、b兩個陣列哪個更大,然後使用大陣列合併小陣列,這樣就減少了陣列元素操作的次數!

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

js合併陣列的方法

我們可以使用push將元素追加到陣列中。push接受可變數量的引數,我們可以一次推送多個元素。但是,如果我們傳遞乙個陣列來推送,它實際上會將該陣列作為單個元素新增,而不是單獨新增元素,我們最終得到乙個陣列內的陣列。1 let arr1 1 2,3 2let arr2 a b 3 arr1.push ...

js合併陣列的方法

js合併兩個陣列的方法 我們在專案過程中,有時候會遇到需要將兩個陣列合併成為乙個的情況。比如 var a 1,2,3 var b 4,5,6 有兩個陣列a b,需求是將兩個陣列合併成乙個。方法如下 var c a.concat b c 1,2,3,4,5,6 這裡有乙個問題,concat方法連線a ...

js合併陣列的方法

我們可以使用push將元素追加到陣列中。push接受可變數量的引數,我們可以一次推送多個元素。但是,如果我們傳遞乙個陣列來推送,它實際上會將該陣列作為單個元素新增,而不是單獨新增元素,我們最終得到乙個陣列內的陣列。1 let arr1 1,2,3 2 let arr2 a b 3arr1.push ...