순회

2012-03-04 3 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} 

나는 별도로리스트의 각 요소에 액세스 및 array[1] = "new_value"로 일부 작업을 수행 할 수 있도록 [1, 2], [3, 4], [5, 6]를 얻을 수 좋겠지 만, 내가 가능하면 matrix을 사용하지 않도록 할 123456 제공합니다.

답변

6

는 실제로 each 블록 당신이 기대하는 방식으로없이 행동을 수행하지만, puts 명령은 배열이 사전 평평하고있다 것처럼 보이게한다. 당신이 inspect를 추가하는 경우,이 분명해진다 :

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

그래서 각 반복에서 array 변수는 중첩 된 배열 요소가 될 것입니다.

+0

또는 puts 대신 pp를 사용할 수도 있습니다. –

+0

two_d_array.each {array | funct (array)}하지만 funct는 개별 목록을 인수로받지 않습니다. – primpap

+0

'funct' 메소드의 모습을 보여줄 수 있습니까? –