Converter matriz em hash ruby

Converter matriz em hash ruby
Ambas as matrizes e os dicionários compartilham uma característica comum em todas as principais linguagens de programação: são estruturas de dados flexíveis e escaláveis ​​que ajudam a organizar e refacter o código.

Em certos casos, a necessidade de converter uma matriz em um hash e vice -versa aparece. Neste guia, discutiremos como você pode converter uma matriz em um hash em rubi.

#1 - usando o método

Suponha que você tenha uma matriz que deseja converter em uma string onde a chave do hash é o elemento da matriz, e o valor do hash é o elemento da matriz + 10.

Para fazer isso, podemos usar o método para iterar cada item na matriz e convertê -lo em uma string.

var = [1,2,3,4,5,6,7,8,9,10]
my_hash =
var.cada um | i |
my_hash [i] = i+10
fim
coloca my_hash

O exemplo acima converterá cada item na matriz em uma chave de hash emparelhada com seu valor.

O dicionário resultante é como mostrado:

1 => 11, 2 => 12, 3 => 13, 4 => 14, 5 => 15, 6 => 16, 7 => 17, 8 => 18, 9 => 19, 10 => 20

#2 - usando cada_with_object

Ruby fornece outro método chamado Cada_with_object. O método executa o método após criar um novo objeto que você pode formar a partir dos elementos da matriz.

Exemplo:

var = [1,2,3,4,5,6,7,8,9,10]
var.cada_with_object () do | i, my_hash |
my_hash [i] = i+10
fim

A funcionalidade do exemplo acima é semelhante ao uso do método.

O valor do hash resultante é como:

1 => 11, 2 => 12, 3 => 13, 4 => 14, 5 => 15, 6 => 16, 7 => 17, 8 => 18, 9 => 19, 10 => 20

Para ver como a função itera os itens da matriz e os converte em um hash, você pode adicionar um elemento de puts dentro do bloco como:

var = [1,2,3,4,5,6,7,8,9,10]
var.cada_with_object () do | i, my_hash |
my_hash [i] = i+10
coloca my_hash
fim

Se você executar o código acima, deve obter uma visão hierárquica do processo de criação de hash.

#3 - Usando o método to_h

O método to_h é definido na classe de matriz. Ele trabalha para converter uma matriz em um hash na forma de pares de valor-chave.

Exemplo:

var = [[1,2], [3,4], [5,6]]
coloca var.to_h

O método converte cada matriz aninhada em pares de valor-chave.

1 => 2, 3 => 4, 5 => 6

O método também aceita um bloco. Se algum bloco for especificado, o método retornará o resultado do bloco em cada elemento da matriz.

Por exemplo, a seguir é um método que mostra se o valor é verdadeiro ou falso.

var = [1,2]
coloca var.to_h | i | [eu.até?, eu]

O dicionário resultante:

false => 1, true => 2

Para encerrar

Neste guia, discutimos como converter uma matriz em um hash usando vários métodos.