2014-01-08 8 views
-2

인덱스로 각 값에 액세스 할 수 있도록 values을 다차원 배열에 어떻게 할당합니까?배열에 각 값을 할당하고 배열의 각 요소에 개별적으로 액세스하십시오.

page = Nokogiri::HTML(open(url)) 
      rows = page.css('table tr td') 

      times = rows.length - 16 
      rows[0..times].each { |row| 
          values = row.text.gsub(/\r\n?/, "").strip 
#assign to array so I could access array[0] or array[6] 
      } 

end 

또한 각 블록 외부의 어레이에 액세스 할 수 있습니까? 내가 할 수있는 유일한 일은 } 전에 puts values 인 것 같습니다.

저는 루비가 처음이에요. 그래서 저는 제 무지로 인해 유감입니다.

답변

0

사용 map :

array = rows[0..times].map do |row| 
    row.text.gsub(/\r\n?/, "").strip 
end 

이것은 당신의 입력 배열의 각 요소에 대해 호출되는 블록의 반환 값에서 새로운 배열을 구축합니다.

+0

굉장! 그랬지, 고마워. 10 분 안에 받아 들일 수 있습니다. – hyphen

0

당신은 Enumerable#map을 사용하여 다음과 같이 할 수있는 :

는 열거의 모든 요소에 대해 한 번 블록의 실행 결과로 새로운 배열을 돌려줍니다.

array = rows[0..times].map { |row| row.text.gsub(/\r\n?/, "").strip } 
관련 문제