2013-04-18 80 views
0

我要合併在Javascript兩個數組是這樣的:的Javascript合併兩個數組

['First', 'Third', 'Fifth', 'Seventh', 'Ninth'] 
['Second', 'Fourth', 'Sixth', 'Eigth'] 
=> ['First', 'Second', 'Third', 'Fourth',...] 

而且一個陣列可以有比另一個多一個元素。例如:

['E1', 'E2', 'E3'] 
['E4'] 
=> ['E1', 'E4', 'E2', 'E3'] 

這樣做的最簡單方法是什麼?

我真的不知道如何做到這一點。

注:我有underscorejs可用。

+3

強制性 - (http://www.whathaveyoutried.com) – Boaz 2013-04-18 06:06:08

+0

@Boaz我真的不知道我應該嘗試[你嘗試過什麼?]。我可能會花很多時間來解決這個問題。雖然這裏有人可以在幾分鐘內解決它,或已經有一次。 – ewooycom 2013-04-18 06:10:48

+3

StackOverflow是一個問答網站,不是一個請求論壇。因此,您需要在代碼中發佈有關特定問題的*問題*,而不是未編寫代碼的需求列表。 – Boaz 2013-04-18 06:12:52

回答

5

以下劃線:

var a1 = ['First', 'Third', 'Fifth', 'Seventh', 'Ninth']; 
var a2 = ['Second', 'Fourth', 'Sixth', 'Eigth']; 

var result = _.compact(_.flatten(_.zip(a1, a2))); 
3
a = ['First', 'Third', 'Fifth', 'Seventh', 'Ninth']; 
b = ['Second', 'Fourth', 'Sixth', 'Eigth']; 
c = []; 
for (var i = 0; i < Math.max(a.length, b.length); i++) { 
    if (i < a.length) c.push(a[i]); 
    if (i < b.length) c.push(b[i]); 
}