(키가 아닌) 해시 값이 일치하는 경우에만 :채우기 루비하는 array1 array2는 문자열 요소와 경우와 배열 2 요소는 내가 루비 해시가
VALS = { :one => "One", :two => "Two" }
및 배열 :
array2 = ["hello", "world", "One"]
질문 : 어떻게 VALI의 값과 정확히 일치하는 array2의 모든 값만 가져 오도록 새 array1을 채울 수 있습니까?
는 예를 들어, 나는 시도했다 : 다른 것은, 및 없음 작업과 함께
array2.each_with_index do |e,i|
array1 << e if VALS[i] ~= e
end
합니다. 멍청한 놈.
감사
화려한! 하지만 시도해 봤는데 :
p array.select { |i| hash.has_value? i ? array[i+1] : "foo"}
나는 fixnum 오류를 변환 할 수 없습니다있어. 나는 뭔가를 놓치고 있어야합니다.
& 연산자가 배열의 교차 집합으로 작동한다는 것을 알지 못했습니다. 매일 새로운 것을 배우십시오 :) +1 –
흠 ... 필요없이 작동합니다 '설정'도 .. 결코 생각하지 못했을 것입니다! 하지만 i 번째 요소와 일치하는 배열의 i + 1 번째 요소를 가져 오려면 어떻게해야합니까? – Eric