2012-03-04 140 views
2

要通過在一維數組中的元素進行迭代的元素,我可以用遍歷嵌套列表

array = [1, 2, 3, 4, 5, 6] 
array.each { |x| puts x } 

有沒有什麼辦法,我爲一個嵌套的列表或一個二維數組做到這一點?在此代碼:

two_d_array = [[1,2], [3,4], [5,6]] 
two_d_array.each{|array| puts array} 

我希望得到[1, 2], [3, 4], [5, 6],這樣我可以單獨訪問列表中的每個元素,並做它的一些操作,比如array[1] = "new_value",但它給123456我想盡可能避免使用matrix

回答

6

其實each做你希望的方式的行爲,但puts命令使它看起來好像陣列已經預展平。如果添加inspect,這變得清晰:

>> two_d_array.each{|array| puts array.inspect} 
[1, 2] 
[3, 4] 
[5, 6] 

所以在每次迭代中array變量將是嵌套的數組元素。

+0

或者他也可以用pp代替puts – 2012-03-04 05:36:38

+0

我試了two_d_array.each {| array |函數(數組)}但函數不接收單個列表作爲參數。 – primpap 2012-03-04 05:39:04

+0

你能告訴我們'funct'方法的樣子嗎? – 2012-03-04 05:48:00