Ruby: 중첩 해시 반복
Ruby에서 중첩된 해시를 반복하는 방법은 무엇입니까?
중첩된 해시를 반복하기 전에 먼저 해시가 무엇인지 알아야 합니다.
해시: 해시는 중괄호로 묶인 키와 값의 모음이며 해시는 자바스크립트 객체와 동일합니다.
중첩 해시 예:
apple = {
"Hardware Products" => {
:computers => "Mac",
:laptops => ["Macbook Pro", "Macbook Air"],
:tablets => ["Ipad Air", "Ipad Pro"],
:phones => "Iphone"
},
"Software Products" => {
:entertainment => ["Apple Music", "Apple Tv", "Apple Podcast"],
:finance => ["Apple Wallet", "Apple Card"],
:other => ["Apple Fitness", "Apple Maps"]
}
}
Apple 하드웨어 및 소프트웨어 제품의 중첩 해시
위의 코드 블록은 중첩 해시의 예입니다. 중첩 해시는 일반적으로 해시의 값 쌍입니다.
이제 해시가 무엇인지 명확해졌으므로 중첩된 해시를 어떻게 반복합니까?
산출물의 예: :finance 값["Apple Wallet", "Apple Card"]을 단말기에 출력합니다.
1 단계:
각 방법을 사용하여 상위 해시를 반복하고 키와 값(product_type, inventory)을 참조하도록 두 개의 매개변수를 설정합니다.
finance_products = apple.each do |product_type, inventory|
puts "product_type: #{product_type}"
puts "inventory: #{inventory}"
end
=> product_type => "Hardware Products"
=> inventory: => {
computers => "Mac",
laptops => ["Macbook Pro", "Macbook Air"],
tablets => ["Ipad Air", "Ipad Pro"],
phones => "Iphone"
}
=> product_type => "Software Products"
=> inventory: => {
:entertainment => ["Apple Music", "Apple Tv", "Apple Podcast"],
:finance => ["Apple Wallet", "Apple Card"],
:other => ["Apple Fitness", "Apple Maps"]
}
2 단계:
[조건문을 사용하여
( https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Building_blocks/conditionals)_(more 여기서 조건부)_ "소프트웨어 제품"의 값에 액세스합니다. 그런 다음 값(인벤토리)을 반복하고 2개의 매개변수를 전달하면 중첩된 해시 키와 값을 참조합니다!
finance_products = apple.each do |product_type, inventory|
if product_type == "Software Products"
inventory.each do |product, type|
puts "product: #{product}"
puts "type: #{type}"
end
end
end
"terminal output"
product: entertainment
type: ["Apple Music", "Apple Tv", "Apple Podcast"]
product: finance
type: ["Apple Wallet", "Apple Card"]
product: other
type: ["Apple Fitness", "Apple Maps"]
3단계:
조건문을 사용하여 (제품)에서 :finance 키를 검색한 다음 각 메서드를 사용하여 값(유형)을 반복하고 매개변수(재무) 및 인쇄(재무)를 전달하여 결과물을 충족합니다.
finance_products = apple.each do |product_type, inventory|
if product_type == "Software Products"
inventory.each do |product, type|
if product == :finance
type.each do |finance|
puts "#{finance}"
end
end
end
end
end
"terminal output"
Apple Wallet
Apple Card
Reference
이 문제에 관하여(Ruby: 중첩 해시 반복), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/cedsengine/ruby-nested-hash-iterations-4l3b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)