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、b兩個陣列後,a、b兩個陣列的資料不變,同時會返回乙個新的陣列。這樣當我們需要進行多次的陣列合併時,會造成很大的記憶體浪費,所以這個方法肯定不是最好的。
for(var i in b)
這樣的寫法可以解決第一種方案中對記憶體的浪費,但是會有另乙個問題:醜!這麼說不是沒有道理,如果能只用一行**就搞定,豈不快哉~
這裡可能有點繞,我們可以把b看成[4,5,6],變成這樣:
然後上面的操作就等同於:
a.push(4,5,6);
這樣就很清楚了!
另外,還要注意兩個小問題:
1)以上3種合併方法並沒有考慮過a、b兩個陣列誰的長度更小。
所以好的做法是預先判斷a、b兩個陣列哪個更大,然後使用大陣列合併小陣列,這樣就減少了陣列元素操作的次數!
2)有時候我們不希望原陣列(a、b)改變,這時就只能使用concat了。
**:
JS合併兩個陣列的方法
我們在專案過程中,有時候會遇到需要將兩個陣列合併成為乙個的情況。比如 1 2 vara 1,2,3 varb 4,5,6 有兩個陣列a b,需求是將兩個陣列合併成乙個。方法如下 1 concat js的array物件提供了乙個叫concat 方法,連線兩個或更多的陣列,並返回結果。1 varc a....
JS合併兩個陣列的方法
我們在專案過程中,有時候會遇到需要將兩個陣列合併成為乙個的情況。比如 vara 1,2,3 varb 4,5,6 有兩個陣列a b,需求是將兩個陣列合併成乙個。方法如下 1 concat js的array物件提供了乙個叫concat 方法,連線兩個或更多的陣列,並返回結果。varc a.concat...
JS合併兩個陣列的方法
我們在專案過程中,有時候會遇到需要將兩個陣列合併成為乙個的情況。比如 1 2vara 1,2,3 varb 4,5,6 有兩個陣列a b,需求是將兩個陣列合併成乙個。方法如下 1 concat js的array物件提供了乙個叫concat 方法,連線兩個或更多的陣列,並返回結果。1varc a.co...