Come ordinare un array e vivere felice con JS in pillole

web developer umbriaUn array pieno di elementi può essere convertito in una stringa usando il metodo join(), afferma Umbriaway Formazione. L’oggetto array dispone di un altro metodo che ordina gli elementi dell’ array in ordine alfabetico ascendente convertendoli in stringhe  che é sort(). Per esempio se avete un array di parole che si chiama array1 potete ordinare le parole convertendole in stringhe utilizzando l’istruzione str1=array.sort(). Quando il metodo sort() viene utilizzato su un array di numeri, i numeri sono elencati alfabeticamente anziché un ordine numerico. Per esempio un array che contiene 1,2,10,12 viene ordinato come 1,10,12,2(one, ten, twelve,two). Il metodo sort() può accettare un nome di funzione come parametro, il nome di funzione può contenere un modo alternativo per ordinare un array, ad esempio ordinare un array ,di numeri numericamente anziché alfabeticamente. Ad esempio:

function numSort(var1,var2) {
return var1 – var2;
}
array1 = new array (“1″,”2″,”12″,”34″,”72”);
str1=array1.sort(numSort);

Quando viene eseguito il metodo sort() viene chiamata la funzione numSOrt. Questa funzione accetta due parametri e restituisce la differenza tra di loro. Questa differenza viene utilizzata dal metodo sort() per ordinare i numeri in modo numerico. Man mano che il metodo sort() analizza gli elementi dell’ array, la funzione numSort viene chiamata ogni volta che é necessario per completare l’ordinamento.

Vediamo un esempio concreto alla fine aprendo la pagina mi ritroverò tutti gli elementi ordinati numericamente.

<html>
<head>
</head>
<body>

array1 = new Array();
array1[0] = “bark”;
array1[1] = “apple”;
array1[2] = “nebula”;
array1[3] = “gregarious”;
array1[4] = “jumpy”;
array1[5] = “water”;
str1 = array1.sort();
document.write(str1);

</body>
</html>

vediamo lo stesso esempio applicato ai numeri con l’uso della funzione per una classificazione numerica.

<html>
<head>
</head>
<body>

function numSort(var1, var2) {
return var1 – var2;
}

array1 = new Array();
array1[0] = “1”;
array1[1] = “10”;
array1[2] = “160”;
array1[3] = “101”;
array1[4] = “2”;
array1[5] = “23”;
str1 = array1.sort(numSort);
document.write(str1);

</body>
</html>

Annunci

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Google photo

Stai commentando usando il tuo account Google. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...