JavaScript Tutorial - Třídění Numerická Array
V JavaScript kdykoliv chcete uspořádat řadu se dostane řazeny abecedně. To znamená, že čísla jsou tříděny na základě první číslice vyskytující se v číselné soustavy (1 - 9), a nikoli na základě porovnání hodnoty. Takže když chci řadit pole s hodnotami 10,12,11,20,2,25,30 dostane tříděny do 10,12,11,20,2,25,30 pomocí vestavěné JavaScript pole řadit metody.
Příklad - Tradiční Array Setřídit dle
"text/javascript" > <Script type = "text / javascript"> new Array ( 10 , 12 , 11 , 20 , 2 , 25 , 30 ) ; var známek = new Array (10, 12, 11, 20, 2, 25, 30); ; známek. sort (); marks ) ; dokument. write (značky); </ Script>
Výstup: 10,11,12,2,20,25,30
Tady vidíte, že číslo 2 přichází po 12 a před 20 do čísla jsou stále řadit na první číslici a další číslice.
Takže pro třídění pole v JavaScriptu Číslicově těchto technik mohou být použity:
Bubble Třídit
To je jedním z tradičních třídění technik používaných v datových strukturách v C, C + + programovací jazyky. V této technice jsou čísla ve srovnání s sebou a v závislosti na hodnotách, které jsou vyměňovány.
Příklad - třídění pomocí Bubble Třídit Technika"text/javascript" > <Script type = "text / javascript"> new Array ( 10 , 12 , 11 , 20 , 2 ) ; var známek = new Array (10, 12, 11, 20, 2); var i = 0 ; i < marks . length ; i ++ ) //Hold the first element pro (var i = 0; <známky i. délku, i + +) / / Hold první prvek ( var j = i + 1 ; j < marks. length ; j ++ ) //Hold the next element from the first element pro (var j = i + 1; j <značek. délku, j + +) / / Hold další prvek z prvního prvku ( Number ( marks [ i ] ) > Number ( marks [ j ] ) ) //comparing first and next element if (Číslo (značky [i])> Číslo (ochranné známky [j])) / / porovnání první a další element ( j ] ; tempValue = známkách [j]; = marks [ i ] ; známkách [j] = značek [i]; = tempValue ; značek [i] = tempValue; ) ) ) marks ) ; dokument. write (značky); script > </ Značky> </ script>Výstup: 2,10,11,12,20
Tady vidíte, že jsem vytvořit dočasnou proměnnou držet hodnotu tak, že data mohou být vyměněny.
Pomocí Prototype funkce
Protoype Funkce v JavaScriptu lze přepsat existující funkčnost objektu. Takže teď s touto technikou array.sort může dělat číselné řazení operace předpokladu, že máte za předpokladu, že funkce pro třídění číselná data.
Příklad - prototyp funkce"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. Prototyp. Sort = function () (for (i = 0; i <to. Délku, i + +) (for (j = i + 1, j <to. Délku j + +) (if (Číslo (to [i])> číslo (toto [j])) (tempValue = toto [j]; to [j] = toto [i]; to [i] = tempValue;) ))) var známek = new Array (10, 12, 11, 20, 2); značky. sort (); dokument. write (značky), </ tohoto> </ script>Výstup: 2,10,11,12,20
Tady jsem naléhavými stávající pole řadit způsob volání metody bubble sort uvnitř. Tak teď. Sort () metoda bude třídit, že číselně, a nikoliv abecedně.
Změna funkcí stávajících Třídit metody
V této technice předáme parametr funkce pole řadit, což je funkce, která bude obsahuje návod, jak porovnávat pole prvků.
Příklad:"text/javascript" > <Script type = "text / javascript"> a , b ) //Sort array in ascending order Funkce ArraySortAscending (a, b) / / pole Třídit vzestupně ( a - b ) ; návrat (a - b); ) a , b ) //Sort array in descending order Funkce ArraySortDescending (a, b) / / Třídit pole sestupně ( b - a ) ; výnos (b - a); ) new Array ( 10 , 12 , 11 , 20 , 2 ) ; var známek = new Array (10, 12, 11, 20, 2); ArraySortAscending ) ; //This will sort the array in ascending order známek. sort (ArraySortAscending); / / Toto bude řadit pole ve vzestupném pořadí marks + ' \n ' ) ; dokument. napsat (+ '\ n' ochranné známky); new Array ( 10 , 12 , 11 , 20 , 2 ) ; var známek = new Array (10, 12, 11, 20, 2); ArraySortDescending ) ; //This will sort the array in descending order známek. sort (ArraySortDescending); / / Toto bude řadit pole v sestupném pořadí marks ) ; dokument. write (značky); </ Script>Výstup:
2,10,11,12,20
20,12,11,10,2



































