Ordinamento in JavaScript | Spiegato

Ordinamento in JavaScript | Spiegato
JavaScript viene fornito con una grande quantità di metodi e funzioni per completare determinate attività. Questi metodi aiutano quando si ordina un array. L'ordinamento significa organizzare un insieme di valori in un ordine specifico, può essere l'ordine ascendente o decrescente. Poiché gli array sono parte integrante della programmazione, ordinarli è un compito importante e cruciale. Ci sono molti algoritmi banali per ordinare gli array, ma perché fare il duro lavoro quando JavaScript viene fornito con metodi di smistamento predefiniti.

Esamineremo l'ordinamento di un array con valori di stringa e valori numerici usando le funzioni JavaScript integrate.

.Metodo Ordine ()

IL .ordinare() Il metodo viene utilizzato per ordinare un array. L'ordine dell'array ordinato è in ordine alfabetico. Funziona meglio per i valori delle stringhe ma produce risultati errati quando si tratta di valori numerici. Ora la domanda arriva perché il .Il metodo di Ordine () non funziona per i valori numerici.

Per sapere perché il .Il metodo Ordy () funziona per le stringhe ma non per i valori numerici, dobbiamo prima capire come il .Il metodo Ordy () funziona.

Come fa il .Ordine () Metodo funziona

IL .ordinare() Il metodo funziona confrontando il primo carattere della stringa con il primo carattere dal valore successivo. Se i personaggi sono gli stessi, controllerà il secondo delle corde e posizionerà prima quella più piccola. Più piccolo è deciso sulla base dell'ordine alfabetico, come nell'esempio sopra "C"È più piccolo di"F".

Quindi, quando passiamo questo ".ordinare()"Metodo due valori numerici come" 200 "e" 65 ". Questa funzione confronta i primi caratteri ("2" di "200" e "6" di "65") e restituisce "65" come numero più grande. Tuttavia, in questo tutorial, esamineremo anche un esempio in cui ordineremo i numeri usando .ordinare() metodo. Cominciamo con la discussione e la comprensione della sintassi del .ordinare() metodo.

Sintassi

La sintassi del .Il metodo Ordy () è abbastanza semplice. È:

vettore.ordinare()

Valore di ritorno: Un array ordinato.

Ad esempio, prendiamo un array con oggetti diversi al suo interno:

Array = ["Table", "Sedia", "Glass", "Mouse", "Laptop", "Fan", "Car"];

Per ordinare questo e visualizzare l'output useremo il .Metodo Ordine () all'interno della console.Metodo log (), come così:

console.registro (array.ordinare());

Il frammento completo di codice diventerebbe:

array = ["tabella", "sedia", "vetro", "mouse", "laptop", "ventola", "auto"];
console.registro (array.ordinare());

Esegui il programma per osservare l'output:

.funzione inversa ()

IL .La funzione reverse () non ordina un array in nessun ordine. Tuttavia, inverte il posizionamento di elementi all'interno dell'array. Significa l'ultimo elemento di un array diventa il primo elemento. La sintassi è come:

vettore.inversione()

Se prendiamo l'array dall'esempio sopra e proviamo a invertirlo usando il .Metodo inverso () quindi lo snippet del codice sarebbe qualcosa del genere.

array = ["tabella", "sedia", "vetro", "mouse", "laptop", "ventola", "auto"];
console.registro (array.inversione());

L'output è come:

Come puoi vedere, gli elementi di un array sono ora in ordine inverso. Ma come possiamo effettivamente ordinare un array in ordine decrescente?

Come ordinare i valori dell'array in ordine decrescente?

Bene, dobbiamo usare una combinazione di .ordinare() e il .inversione() metodo. Prima ordiniamo un array e poi usiamo il .inversione() Metodo per ordinare l'array in ordine decrescente.

Sembra un po 'confuso, quindi proviamo a osservare un esempio. Per questo esempio, prendi l'array dagli esempi sopra.

array = ["tabella", "sedia", "vetro", "mouse", "laptop", "ventola", "auto"];

Ora che abbiamo un array in ordine completamente casuale. Il primo passo è risolverlo, quindi facciamolo: usare

vettore.ordinare()

Ora che l'array è ordinato, dobbiamo invertirlo usando la riga seguente:

vettore.inversione();

L'ultimo passo è osservare l'output e farlo visualizzare l'array usando il console.tronco d'albero() Metodo come questo:

console.log (array);

Il frammento di codice completo è come

array = ["tabella", "sedia", "vetro", "mouse", "laptop", "ventola", "auto"];
vettore.ordinare();
vettore.inversione();
console.log (array);

L'output è come:

Ecco, questo è il nostro array ordinato in ordine alfabetico discendente. Ora vediamo come lavorare con i valori numerici.

Come ordinare i valori numerici usando .Metodo Ordine ()

Come abbiamo già menzionato sopra, il .ordinare() Il metodo non produce risultati corretti quando si tratta di ordinare i valori numerici, e questo perché il .ordinare() Il metodo funziona confrontando le stringhe, considera i valori numerici come stringhe e quindi li confronta.

Iniziamo creando un array di valori numerici. Così.

NumberArray = [2,3,4,6,66,100,25,33]

Ora osserviamo l'output eseguendo il. ordinare() metodo su questo array all'interno del console.tronco d'albero() funzione

console.Log (NumberArray.ordinare());

L'output è come:

Come puoi vedere, il risultato è fuori dal segno. Perchè è così?. Bene, abbiamo già spiegato come il .Il metodo Ordy () funziona. Quello che succede è che prende il primo carattere della stringa e lo confronta con i primi caratteri del valore successivo, sebbene 100 sia più grande di 33. Ma, quando si confrontano i primi caratteri, "1" è più piccolo di "3", quindi 100 vengono posizionati prima di 33.

Quindi risolviamo questo problema? Bene, lo facciamo usando una funzione di confronto all'interno della funzione di ordinamento. La funzione di confronto è come:

funzione (a, b)

restituire A-B

Prendiamo il "NumberArray"Dall'esempio sopra e applica questa funzione di confronto per osservare l'output.

NumberArray = [2, 3, 4, 6, 66, 100, 25, 33];
NumberArray.sort (function (a, b)
restituire a - b;
);
console.log (NumberArray);

Con questo, otteniamo il seguente output.

Come puoi vedere, finalmente abbiamo il nostro array di numeri ordinato in ordine decrescente.

Come ordinare i valori numerici in ordine decrescente?

Ora che abbiamo familiarità con l'ordinamento di un array numerico in ordine crescente, possiamo iniziare a provare a risolverlo in ordine decrescente. Proprio come cercare di ordinare le stringhe in ordine decrescente, possiamo usare il metodo Reverse () per invertire l'array ordinato numerico in questo modo:

NumberArray = [2, 3, 4, 6, 66, 100, 25, 33];
NumberArray.sort (function (x, y)
restituire x - y;
);
NumberArray.inversione();
console.log (NumberArray);

L'output è come:

Tuttavia, esiste un altro modo di farlo, e questo è quello di modificare l'istruzione di ritorno nella funzione di confronto. Cambia l'affermazione in questo:

restituire b-a;

Dopodiché, stampiamo semplicemente l'array usando il console.tronco d'albero() metodo. Lo snippet completo del codice è come:

NumberArray = [2, 3, 4, 6, 66, 100, 25, 33];
NumberArray.sort (function (x, y)
restituire y - x;
);
console.log (NumberArray);

L'output sarà:

Come ordinare gli array di oggetti in JavaScript

Immagina di avere una serie di oggetti, ad esempio, prendiamo oggetti di persone con il loro nome e il loro anno di nascita.

Ora vogliamo ordinare questo array entro l'anno in cui sono nati. Abbiamo l'array di oggetti delle persone come:

const People = [
Nome: "Albert", Yob: 1997,
Nome: "Dave", YOB: 2005,
nome: "John", yob: 2000
];

Ora possiamo ordinare questo array di oggetti usando .Ordina () e confronta la funzione come:

persone.sort (function (x, y)
restituire x.YOB - X.yob;
);

Ora l'ultima cosa è visualizzare questo array usando il seguente codice:

console.registro ("le persone in ordine di età sono come");
per (let i = 0; i <= people.length; i++)
console.registro (persone [i].nome + "nasce in" + persone [i].yob);

Lo snippet completo del codice è come:

const People = [
Nome: "Albert", Yob: 1997,
Nome: "Dave", YOB: 2005,
nome: "John", yob: 2000,
];
persone.sort (function (x, y)
restituire x.YOB - Y.yob;
);
console.registro ("le persone in ordine di età sono come");
per (let i = 0; i <= people.length; i++)
console.registro (persone [i].nome + "nasce in" + persone [i].yob);

Quando eseguiamo il file otteniamo il seguente output:

Come possiamo vedere, tutti gli oggetti sono ora ordinati in base al loro "yob" che è l'anno di nascita della persona.
Questo è tutto per l'ordinamento in JavaScript.

Conclusione

L'ordinamento è una parte essenziale quando si lavora con gli array. JavaScript viene fornito con varie funzioni integrate che ci aiutano a ordinare gli elementi di array. Abbiamo imparato come il .ordinare() Il metodo funziona in JavaScript, la sua sintassi e il suo valore di restituzione. Inoltre, abbiamo imparato a usare la combinazione di .ordinare() E .inversione() Metodo per ordinare gli array in ordine decrescente. Infine, abbiamo imparato come possiamo usare il .ordinare() Metodo per l'ordinamento dei valori numerici usando la funzione di confronto.