2014-06-10 1 views
-1

주어진 배열의 인덱스를 변경 싶어, 루비의 방법 each_with_index를 사용하는 호랑이는 고양이 색인에 대해 4 개 색인 및 3 개 값을 갖습니다.어떻게 내가 주어진 배열의 인덱스를 변경 싶어

이 가능합니까?

감사합니다.

+0

어떻게 결과가 같아야? 고양이, 호랑이, 사자, 네? –

+0

@UriAgassi 동일한 주문이지만 다른 주문 색인을 사용하는 경우 3부터 시작합니다. – YoniGeek

+0

명백하게 sawa는 당신이 의미하는 것을 안다 ;-) –

답변

0

당신은 Hash 로모그래퍼 것을 할 수있는 :

hash = { 
    3 => "cat", 
    4 => "tiger", 
    5 => "lion" 
} 

hash[4] 
#=> "tiger" 

것은 당신이 해시에 배열에서 변환 할 경우이 수행 할 수

arr = ["cat", "tiger", "lion"] 
hash = Hash[arr.each_with_index.map{|v,i| [i+3, v] }] 
#=> {"cat"=>3, "tiger"=>4, "lion"=>5} 
1

each_with_index으로는 수행 할 수 없지만 with_index으로 처리 할 수 ​​있습니다.

arr.each.with_index(3) do |e, i| 
    ... 
end 
+1

예. 그렇습니다.하지만 OP의 출력이 명확하지 않습니다. :) –

1

는 네, 그것은 당신이 할 수있는 가능 그것을 액세스 할 색인 메소드를 작성하십시오.

def get_by_index(array, value) 
    array[value-3] 
end 

또한 배열에서 상속 새로운 배열의 하위 클래스를 생성하고 여기에 설명 된대로 대괄호 방법을 다시 정의 할 수 있습니다 :

How does defining [square bracket] method in Ruby work?

관련 문제