JavaScript Tutorial - Ordinamento numerico Array
In Javascript ogni volta che si vuole ordinare un array si ottiene in ordine alfabetico. Ciò 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 il metodo JavaScript incorporato sorta di matrice.
Esempio - Tradizionale Array Sort Metodo
"text/javascript" > <Script type = "text / javascript"> new Array ( 10 , 12 , 11 , 20 , 2 , 25 , 30 ) ; var segna = 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 sta arrivando dopo 12 e prima del 20, prima i numeri sono sempre ordinamento basato sulla prima cifra e cifra successiva.
Quindi, per ordinare un array in JavaScript numerico seguenti tecniche possono essere usate:
Bubble Sort
Questa è una delle tecniche tradizionali di ordinamento utilizzati in strutture di dati in C, C + + linguaggi di programmazione. In questa tecnica i numeri vengono confrontati tra loro e in base ai valori che vengono scambiati.
Esempio - Ordinamento con Bubble Sort Tecnica"text/javascript" > <Script type = "text / javascript"> new Array ( 10 , 12 , 11 , 20 , 2 ) ; var segna = 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 (var j = i segni + 1, j <. lunghezza; j + +) / / Hold l'elemento successivo dal primo elemento ( Number ( marks [ i ] ) > Number ( marks [ j ] ) ) //comparing first and next element if (Number (marchi [i])> Number (marchi [j])) / / primo elemento di confronto e di successiva ( j ] ; marchi = tempValue [j]; = marks [ i ] ; marchi [j] = marchi [i]; = tempValue ; marchi [i] = tempValue; ) ) ) marks ) ; documento. scrittura (segni); script > </ Marchi> </ script>Uscita: 2,10,11,12,20
Qui vedete che io sono la creazione di una variabile temporanea per contenere il valore in modo che i dati possono essere scambiati.
Utilizzando la funzione Prototipo
Prototipo di funzione in JavaScript è possibile ignorare la funzionalità esistenti dell'oggetto. Così ora con questa Array.Sort tecnica può fare un'operazione di ordinamento numerico di cui hai fornito le funzionalità di ordinamento dei dati numerici.
Esempio - prototipo di funzione"text/javascript" > Array. prototype . sort = function ( ) { for ( i = 0 ; i < this . length ; i ++ ) { for ( j = i + 1 ; j < this. length ; j ++ ) { if ( Number ( this [ i ] ) > Number ( this [ j ] ) ) { tempValue = this [ j ] ; this [ j ] = this [ i ] ; this [ i ] = tempValue ; } } } } var marks = new Array ( 10 , 12 , 11 , 20 , 2 ) ; marks. sort ( ) ; document. write ( marks ) ; </ this ></ script > <Script type = "text / javascript"> Array. Prototipo. Sort = function () (for (i = 0; i <lunghezza.; I + +) (for (j = i + 1; j <questa lunghezza. ; j + +) (if (Number (this [i])> Number (this [j])) (tempValue = this [j]; questo [j] = this [i]; questo [i] = tempValue;) ))) marchi var = new Array (10, 12, 11, 20, 2); marchi. sort (); documento. scrittura (segni); </ questo> </ script>Uscita: 2,10,11,12,20
Eccomi qui l'override del metodo attuale ordinamento array chiamando il metodo bubble sort al suo interno. Così ora. Sort () metodo sort che numericamente e non in ordine alfabetico.
Modificare la funzionalità di Sort esistenti Metodo
In questa tecnica si passerà un parametro a una funzione di ordinamento array che è una funzione che contiene le istruzioni su come mettere a confronto gli elementi della matrice.
Esempio:"text/javascript" > <Script type = "text / javascript"> a , b ) //Sort array in ascending order ArraySortAscending funzione (a, b) / / array Ordinare in ordine crescente ( a - b ) ; return (a - b); ) a , b ) //Sort array in descending order ArraySortDescending funzione (a, b) / / array Ordinare in ordine decrescente ( b - a ) ; return (b - a); ) new Array ( 10 , 12 , 11 , 20 , 2 ) ; var segna = new Array (10, 12, 11, 20, 2); ArraySortAscending ) ; //This will sort the array in ascending order marchi. sort (ArraySortAscending); / / This will ordinare l'array in ordine crescente marks + ' \n ' ) ; documento. scrittura (marchi + '\ n'); new Array ( 10 , 12 , 11 , 20 , 2 ) ; var segna = new Array (10, 12, 11, 20, 2); ArraySortDescending ) ; //This will sort the array in descending order marchi. sort (ArraySortDescending); / / This will ordinare l'array in ordine decrescente marks ) ; documento. scrittura (segni); </ Script>Uscita:
2,10,11,12,20
20,12,11,10,2
















