Array ordina Ruby

Array ordina Ruby
Ruby è un linguaggio di programmazione semplicistico e potente che fornisce funzionalità eccezionali per le operazioni di programmazione quotidiane.

Poiché gli array sono un oggetto fondamentale in Ruby e in altri linguaggi di programmazione, Ruby fornisce un modo per ordinare elementi senza scrivere un eccellente algoritmo personalizzato.

Questa guida ti insegnerà come ordinare un array usando i metodi e le funzionalità integrati di Ruby.

Come ordinare un array

Ruby fornisce vari modi per ordinare un array. I metodi di Ordine e Sort_By in Ruby sono alcuni dei più fondamentali per l'ordinamento di un array.

#1: usando il metodo di ordinamento

Il metodo di ordinamento è definito nel modulo enumerabile e restituisce i valori dell'array ordinato.

Per esempio:

nums = [1,20, 23, 28, 2, 100, 34, 53, 22, 21, 11]
Stampa nums.ordinare
[1, 2, 11, 20, 21, 22, 23, 28, 34, 53, 100]

Per impostazione predefinita, il metodo restituirà gli elementi nell'array ordinato in ordine crescente.

Funziona utilizzando l'operatore spaziale, che restituisce 1 se un valore è maggiore di, 0 per uguale a e -1 per meno di.

Se fornisci una serie di stringhe, l'array ordinato sarà in ordine alfabetico come:

Database = %W MySQL, PostgreSQL, Redis, MemCached, MongoDB, ElaSticSearch
Stampa database.ordinare
["Elasticsearch", "Memcached", "Mongodb", "Mysql", "Postgresql", "Redis"]

È possibile passare un blocco alla funzione di ordinamento se si desidera implementare un ordine di ordinamento personalizzato. Ad esempio, il seguente implementa un ordine inverso usando il metodo di ordinamento.

nums = [1, 2, 11, 20, 21, 22, 23, 28, 34, 53, 100]
Stampa nums.ordina | x, y | y x
[100, 53, 34, 28, 23, 22, 21, 20, 11, 2, 1]

Ruby ti consente anche di ordinare un array in posizione usando l'ordinamento! metodo. Il metodo influirà sul metodo originale nel nuovo array ordinato come:

nums = [1, 2, 11, 20, 21, 22, 23, 28, 34, 53, 100]
nums.ordinare!
Stampa nums
[1, 2, 11, 20, 21, 22, 23, 28, 34, 53, 100]

Nota: usa l'ordinamento! metodo con cautela; sovrascrive l'array originale, come mostrato nell'esempio sopra.

#2: metodo sort_by

Il metodo Sort_By fornisce flessibilità durante l'ordinamento rispetto al metodo di ordinamento. Diamo un'occhiata ad alcuni esempi per vedere come funziona l'ordinamento usando il metodo Sort_By.

Il primo esempio è l'ordinamento della lunghezza di una stringa.

Database = ["Elasticsearch", "MemCached", "MongoDB", "Mysql", "Postgresql,", "Redis"]
Stampa database.sort_by | content | contenuto.lunghezza
["Redis", "Mysql,", "Mongodb", "Memcached", "Postgresql", "Elasticsearch"]

L'ordinamento degli elementi nell'array avviene in ordine crescente in base alla lunghezza del contenuto della stringa.

Usiamo la proprietà di lunghezza della stringa come metodo Sort_by si aspetta un valore numerico.

Supponiamo di voler ordinare la stringa in ordine inverso usando il metodo Sort_by? In tal caso, possiamo aggiungere un operatore meno, come mostrato di seguito:

Database = ["Elasticsearch", "MemCached", "MongoDB", "Mysql", "Postgresql,", "Redis"]
Stampa database.sort_by | content | -contenuto.lunghezza

L'esempio sopra restituirà l'array ordinato in ordine decrescente.

Chiusura

Questa guida ti ha mostrato come lavorare con gli array e ordinarli usando metodi Ruby integrati.