2011-07-19 64 views
4

要將此轉換:陣列半壓扁

[["1", "2", "3"], ["4", "5", "6"]] 

這樣:

["1", "2", "3"], ["4", "5", "6"] 

要傳遞到Array.product(),並且所述第一陣列可以包含一個未知的數量的其他陣列。例如,考慮到陣列也可以是

[["1", "2", "3"], ["4", "5", "6"], ["7", "8", "9"]] 

最終,我需要通過參數爲:提前

otherArray.product(["1", "2", "3"], ["4", "5", "6"], ["7", "8", "9"]) 

感謝的時候了!

回答

5
otherArray.product(*[["1", "2", "3"], ["4", "5", "6"], ["7", "8", "9"]]); 

*在參數列表用於解壓陣列內容的參數(像 這裏)或打包參數到一個數組,像在 「DEF的MyMethod(*參數)」

參考:http://www.justskins.com/forums/apply-method-to-array-17387.html

+2

在Python中也是一個非常有用的運算符。 – JAB

0

的最後一行代碼一邊,它的其餘部分似乎通過使用0的索引來解決:

arr[0] 
+0

我不遵循,只會返回其他人的第一個數組,並且不會動態包含所有數組 –

1

,我認爲你會爲你工作時使用Ruby的陣列擴展:

a=[[1,2,3],[4,5,6]] 
b=[1,2,3].product([1,2,3],[4,5,6]) 
c=[1,2,3].product(*a) 
b == C#This should be true 

基本上把星號(*)的變量前將擴大陣列中的所有元素融入到參數列表,這是你想要什麼。