2011-07-19 62 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 

基本上把星号(*)的变量前将扩大阵列中的所有元素融入到参数列表,这是你想要什么。