배열을 해시 루비로 변환

배열을 해시 루비로 변환

2022-09-03 last update

5 minutes reading Ruby
배열과 사전은 모두 모든 주요 프로그래밍 언어에서 공통적인 특성을 공유합니다. 둘 다 코드를 구성하고 리팩터링하는 데 도움이 되는 유연하고 확장 가능한 데이터 구조입니다.
어떤 경우에는 배열을 해시로 또는 그 반대로 변환해야 할 필요가 있습니다. 이 가이드에서는 Ruby에서 배열을 해시로 변환하는 방법에 대해 설명합니다.

#1 – 각 방법 사용하기


해시의 키가 배열 요소이고 해시 값이 배열의 요소 + 10인 문자열로 변환하려는 배열이 있다고 가정합니다.
이를 위해 each 메소드를 사용하여 배열의 각 항목을 반복하고 문자열로 변환할 수 있습니다.
var = [1,2,3,4,5,6,7,8,9,10]

my_hash = {}

var.each do |i|

my_hash[i] = i+10

end

puts my_hash
위의 예는 배열의 각 항목을 해당 값과 쌍을 이루는 해시 키로 변환합니다.
결과 사전은 다음과 같습니다.
{1=>11, 2=>12, 3=>13, 4=>14, 5=>15, 6=>16, 7=>17, 8=>18, 9=>19, 10=>20}

#2 – each_with_object 사용


Ruby는 each_with_object라는 또 다른 메서드를 제공합니다. 이 메서드는 배열 요소에서 구성할 수 있는 새 개체를 만든 후 each 메서드를 실행합니다.
예시:
var = [1,2,3,4,5,6,7,8,9,10]

var.each_with_object({}) do |i, my_hash|

my_hash[i] = i+10

end
위 예제의 기능은 각각의 방법을 사용하는 것과 유사합니다.
결과 해시 값은 다음과 같습니다.
{1=>11, 2=>12, 3=>13, 4=>14, 5=>15, 6=>16, 7=>17, 8=>18, 9=>19, 10=>20}
함수가 배열의 항목을 반복하고 해시로 변환하는 방법을 보려면 다음과 같이 블록 내부에 puts 요소를 추가할 수 있습니다.
var = [1,2,3,4,5,6,7,8,9,10]

var.each_with_object({}) do |i, my_hash|

my_hash[i] = i+10

puts my_hash

end
위의 코드를 실행하면 해시 생성 프로세스를 계층적으로 볼 수 있습니다.


#3 – to_h 메서드 사용


to_h 메서드는 배열 클래스에 정의되어 있습니다. 배열을 키-값 쌍 형태의 해시로 변환하는 역할을 합니다.
예시:
var = [[1,2], [3,4], [5,6]]

puts var.to_h
이 메서드는 각 중첩 배열을 키-값 쌍으로 변환합니다.
{1=>2, 3=>4, 5=>6}
이 메서드는 블록도 허용합니다. 블록이 지정되면 메서드는 각 배열 요소에 대한 블록 결과를 반환합니다.
예를 들어, 다음은 값이 참인지 거짓인지를 보여주는 메소드입니다.
var = [1,2]

puts var.to_h {|i| [i.even?, i]}
결과 사전:
{false=>1, true=>2}

닫는 중


이 가이드에서는 다양한 방법을 사용하여 배열을 해시로 변환하는 방법에 대해 논의했습니다.