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]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È 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]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]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"]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"]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.