Filtro de matriz em rubi

Filtro de matriz em rubi
Podemos pensar em matrizes como bancos de dados ou, mais especificamente, uma tabela dentro de um banco de dados. O principal uso de matrizes é armazenar itens relacionados em uma única entidade, permitindo que você os gerencie com eficiência.

Este tutorial ilustrará como filtrar os resultados de uma matriz usando os métodos de seleção, localização e rejeição.

Usando o método de seleção

Usamos a instrução SELECT para filtrar elementos em uma matriz para um subconjunto que corresponda aos critérios específicos.

O método SELECT retorna uma nova matriz com todos os valores em que a condição é avaliada para true.

O método selecionado aceita um bloco para especificar a condição.

Por exemplo:

estruturas = [
"Reagir",
"Angular",
"Vue JS",
"Sovette"
]
Estruturas de impressão.Selecione | i | eu.comprimento> 6

No exemplo acima, usamos o método de seleção para filtrar a string com um comprimento maior que 6.

O código no bloco irá atingir cada item da matriz, verificando a condição. Se verdadeiro, a instrução SELECT adicionará a uma nova coleção.

Selecionar no local

A instrução SELECT não afeta a matriz original. Ele cria uma nova matriz com itens que correspondem à condição especificada.

Para afetar a matriz original, podemos usar a seleção! Método.

estruturas = [
"Reagir",
"Angular",
"Vue JS",
"Sovette"
]
estruturas.Selecione! | i | eu.comprimento> 6
Estruturas de impressão

A matriz de estruturas é modificada para conter apenas os elementos com um comprimento maior que 6.

=> ["Angular"]

Usando o método de localização

Podemos usar o método de localização para encontrar um único elemento na matriz que corresponda a uma condição específica.

Por exemplo:

estruturas = [
"Reagir",
"Angular",
"Vue JS",
"Sovette"
]
Estruturas de impressão.encontre | i | eu.comprimento == 5

O método de localização retornará a primeira correspondência da condição especificada.

Aqui está um exemplo de saída:

=> React

Se não houver correspondência, o método retorna nil.

Às vezes você pode encontrar o método find_all. O método find_all retorna todas as correspondências em vez de um único objeto. Você pode considerá -lo um alias do método de seleção.

Usando o método de rejeição

O método de rejeição é exatamente o oposto do método de seleção. Em vez de incluir os valores que correspondem a uma condição específica, o método rejeita os elementos.

Por exemplo:

estruturas = [
"Reagir",
"Angular",
"Vue JS",
"Sovette"
]
Estruturas de impressão.rejeitar | i | eu.comprimento> 6

No exemplo acima, removemos todos os elementos com um comprimento maior que 6. Em nosso exemplo, este é apenas um único objeto.

O valor resultante é como:

=> ["React", "vue js", "esbelto"]

Para resumir

Você acabou de aprender a filtrar os elementos em uma matriz usando os métodos de seleção, localização e rejeição.

Lembre -se: a prática é igual a domínio