Iterare attraverso un array in Ruby

Iterare attraverso un array in Ruby
Ruby è un potente linguaggio di programmazione che sembra abbracciare il concetto di facile da imparare e usare pesantemente. Quando si tratta di svolgere attività quasi fondamentali in Ruby, è probabile che ci sia un metodo integrato per questo.

Questo tutorial discuterà di vari modi in cui puoi iterare sugli oggetti in un array di rubini.

Creazione di un array

In Ruby, possiamo creare un array aggiungendo un elenco di valori separati da virgola all'interno di una coppia di parentesi quadrate. Ogni elemento nell'array è noto come elemento e può essere di qualsiasi tipo di rubino.

myArray = [1,2,3.9, "ciao", "mondo", [], ]

L'esempio sopra mostra un semplice array composto da vari tipi di elementi come numeri interi, galleggianti, stringhe, array, hash e altro ancora.

In alcuni casi, potresti avere un array composto solo dal tipo di stringa. In tal caso, è possibile creare e racchiudere i valori in %w

Esempio:

Database = %W MySQL, PostgreSQL, Redis, MemCached, MongoDB, ElaSticSearch

Se utilizziamo la sintassi sopra per creare un array, Ruby separerà i valori per spazi bianchi e creerà singoli elementi, come mostrato di seguito:

Stampa database
;

Iterato su un array

Iterare su un array e lavorare con singoli elementi è un concetto di programmazione fondamentale. Ruby ci fornisce alcuni metodi per eseguire tale compito.

Usando ogni metodo

L'enumerabile Ruby#Ogni metodo è il modo più semplicistico e popolare per iterare singoli elementi in un array.

Accetta due argomenti: il primo è un elenco enumerabile e il secondo è un blocco. Prende ogni elemento nell'elenco fornito ed esegue il blocco, prendendo l'elemento corrente come parametro.

Ecco un esempio:

Database = %W MySQL, PostgreSQL, Redis, MemCached, MongoDB, ElaSticSearch
banche dati.ognuno do | i |
mi mette
FINE

Il semplice esempio di cui sopra illustra come funziona il metodo. Prende ogni elemento nell'array di database ed esegue un blocco con l'elemento corrente. Nel nostro esempio, il blocco è un metodo semplice.

L'output risultante è ciascun elemento nell'array come:

$ Ruby Iterator.Rb
Mysql,
.. ,
MongodB,
Elasticsearch

Utilizzo di ciascuno_with_index Metodo

In alcuni casi, potremmo voler stampare l'elemento e il suo indice di posizione nell'array. Per fare ciò, possiamo usare il metodo Each_with_index

Funziona come ogni metodo ma restituisce sia gli elementi che le loro posizioni dell'indice come:

Database = %W MySQL, PostgreSQL, Redis, MemCached, MongoDB, ElaSticSearch
banche dati.ciascuno_with_index do | elemento, indice |
mette " #indice => #element"
FINE

Nell'esempio sopra, Ruby restituirà ogni elemento nell'array mappato al suo indice come mostrato:

0 => mysql,
1 => PostgreSQL,
.. ,
5 => Elasticsearch

Usando un ciclo per

Come nella maggior parte dei linguaggi di programmazione, puoi anche iterare sugli elementi in un array usando un loop per.

Database = %W MySQL, PostgreSQL, Redis, MemCached, MongoDB, ElaSticSearch
per elemento nei database
mette l'elemento
FINE

L'esempio sopra funziona come ogni metodo e restituisce singoli elementi nell'array.

Usando Seleziona

Ruby ha anche un altro metodo per ripetere gli elementi in un array: il metodo seleziona. Il metodo Select funziona come mostrato nell'esempio seguente

Database = %W MySQL, PostgreSQL, Redis, MemCached, MongoDB, ElaSticSearch
banche dati.Seleziona do | i |
mi mette
FINE

Il metodo Select è utile quando si desidera un sottoinsieme che soddisfi criteri specifici. Ad esempio, selezionare solo anche i valori in un array come mostrato:

nums = [1,20, 23, 28, 2, 100, 34, 53, 22, 21, 11]
nums.Seleziona do | i |
io.Anche?
FINE

L'esempio sopra dovrebbe restituire solo un sottoinsieme dell'array nums in cui l'elemento è pari.

=> [20, 28, 2, 100, 34, 22]

Usando la mappa

Il metodo della mappa è un altro modo per iterare sugli elementi in un array. La funzionalità funziona in modo simile a qualsiasi iteratore di array in Ruby. Tuttavia, è principalmente utile quando si desidera trasformare l'array.

nums = [1,20, 23, 28, 2, 100, 34, 53, 22, 21, 11]
nums.Mappa do | i |
I * 3
FINE

L'esempio sopra restituirà un nuovo oggetto con gli elementi nell'array moltiplicato per 3.

Se si desidera influenzare l'array originale, è possibile utilizzare la mappa! metodo.

nums = [1,20, 23, 28, 2, 100, 34, 53, 22, 21, 11]
nums.carta geografica! do | i |
I * 3
FINE
Stampa nums
[3, 60, 69, 84, 6, 300, 102, 159, 66, 63, 33]

Nell'esempio sopra, la mappa! Il metodo altera l'array di origine e crea un array con le modifiche specificate.

Conclusione

Questa guida ha discusso di come iterare sugli oggetti in un array che utilizza per loop e altri metodi di rubino integrati.