Tutorial JavaScript - Ordinamento numerico Array
In Javascript ogni volta che si desidera ordinare un array ordinato ottiene ordine alfabetico. Questo significa che i numeri sono ordinati sulla base della prima cifra che si verificano nel sistema di numerazione (1-9) e non confrontando il valore. Quindi, se voglio ordinare un array con valori 10,12,11,20,2,25,30 viene ordinato di 10,12,11,20,2,25,30 utilizzando integrato sorta di matrice metodo JavaScript.
Esempio - Metodo Tradizionale Array Sort
"text/javascript" > Tipo di script <= "text / javascript"> new Array ( 10 , 12 , 11 , 20 , 2 , 25 , 30 ) ; segna var = new Array (10, 12, 11, 20, 2, 25, 30); ; marchi. sort (); marks ) ; documento. scrittura (segni); </ Script>
Uscita: 10,11,12,2,20,25,30
Qui si vede che il numero 2 è in arrivo dopo 12 e prima del 20, prima i numeri sono sempre ordinare sulla base della prima cifra cifra e il prossimo.
Quindi, per ordinare un array in JavaScript numerico seguenti tecniche possono essere utilizzate:
Bubble Sort
Questa è una delle tecniche di ordinamento tradizionale usato nelle strutture dati in C, C + + linguaggi di programmazione. In questa tecnica i numeri vengono confrontati tra loro e secondo i valori vengono scambiati.
Esempio - Ordinamento con Bubble Sort Tecnica"text/javascript" > Tipo di script <= "text / javascript"> new Array ( 10 , 12 , 11 , 20 , 2 ) ; segna var = new Array (10, 12, 11, 20, 2); var i = 0 ; i < marks . length ; i ++ ) //Hold the first element for (var i = 0; i marchi <. lunghezza; i + +) / / Tenere il primo elemento ( var j = i + 1 ; j < marks. length ; j ++ ) //Hold the next element from the first element for (j = i var + 1; marchi <j. lunghezza; j + +) / / Attesa l'elemento successivo dal primo elemento ( Number ( marks [ i ] ) > Number ( marks [ j ] ) ) //comparing first and next element if (Number (marchi di [i])> Numero (marchi di [j])) / / il confronto e il prossimo primo elemento ( j ] ; tempValue = segna [j]; = marks [ i ] ; segna [j] = marchi [i]; = tempValue ; marchi di [i] = tempValue; ) ) ) marks ) ; documento. scrittura (segni); script > </ Marchi> </ script>Uscita: 2,10,11,12,20
Qui vedete che sto creando una variabile temporanea per contenere il valore in modo che i dati possano essere scambiati.
Utilizzando la funzione di Prototype
Prototipo di funzione in JavaScript possono ignorare le funzionalità esistenti del Object. Così ora con questa tecnica può fare Array.Sort operazione numerico tipo di quelli forniti da Lei forniti per la funzionalità di ordinamento dei dati numerici.
Esempio - Funzione Prototipo"text/javascript" > Tipo di script <= "text / javascript"> = function ( ) Array. Prototipo. Sort = function () ( i = 0 ; i < this . length ; i ++ ) for (i = 0; i <questo. lunghezza; i + +) ( j = i + 1 ; j < this. length ; j ++ ) for (j = i + 1; <questo. lunghezza j, j + +) ( Number ( this [ i ] ) > Number ( this [ j ] ) ) if (Number (questo [i])> Numero (questo [j])) ( [ j ] ; tempValue = questo [j]; j ] = this [ i ] ; questo [j] = presente [i]; i ] = tempValue ; questo i] [= tempValue; ) ) ) ) new Array ( 10 , 12 , 11 , 20 , 2 ) ; segna var = new Array (10, 12, 11, 20, 2); ; marchi. sort (); marks ) ; documento. scrittura (segni); script > </ Questa> </ script>Uscita: 2,10,11,12,20
Eccomi l'override del metodo di ordinamento esistente array chiamando il metodo bubble sort al suo interno. Così ora. Sort () metodo di ordinamento che numericamente, e non in ordine alfabetico.
Cambiare la funzionalità del metodo di ordinamento esistente
In questa tecnica si passa un parametro a una funzione di ordinamento di matrice che è una funzione che conterrà le istruzioni su come mettere a confronto gli elementi dell'array.
Esempio:"text/javascript" > Tipo di script <= "text / javascript"> a , b ) //Sort array in ascending order ArraySortAscending funzione (a, b) / / array Ordinare in ordine crescente ( a - b ) ; ritorno (a - b); ) a , b ) //Sort array in descending order ArraySortDescending funzione (a, b) / / array ordinamento decrescente ( b - a ) ; ritorno (b - a); ) new Array ( 10 , 12 , 11 , 20 , 2 ) ; segna var = new Array (10, 12, 11, 20, 2); ArraySortAscending ) ; //This will sort the array in ascending order marchi. sort (ArraySortAscending); / / Il ordinare l'array in ordine crescente marks + ' \n ' ) ; documento. write (+ n '\' punti); new Array ( 10 , 12 , 11 , 20 , 2 ) ; segna var = new Array (10, 12, 11, 20, 2); ArraySortDescending ) ; //This will sort the array in descending order marchi. sort (ArraySortDescending); / / Il ordinare l'array in ordine decrescente marks ) ; documento. scrittura (segni); </ Script>Uscita:
2,10,11,12,20
20,12,11,10,2


































