JavaScript инстркцията - Сортиране Число Array
В JavaScript, когато искате да сортирате масиви той получава сортирани по азбучен ред. Това означава, че числата са подредени на базата на първата цифра настъпили в броя система (1-9), а не чрез сравняване на стойността. Така че, ако искате да сортирате масиви като стойността 10,12,11,20,2,25,30 получава подредени 10,12,11,20,2,25,30 използват вградени JavaScript метод на сортиране масив.
Пример - Традиционни Array метод на сортиране
"text/javascript" > <Скрипт тип = "текст / JavaScript"> new Array ( 10 , 12 , 11 , 20 , 2 , 25 , 30 ) ; Var марки = нови Array (10, 12, 11, 20, 2, 25, 30); ; марки. подреди (); marks ) ; документ. Запис (марки); </ Ръкопис>
Изход: 10,11,12,2,20,25,30
Тук можете да видите, че под номер 2 идва след 12 и преди 20, преди номера сдобиваме се с нещо на базата на първата цифра и следващата цифра.
Така че, за да сортирате масиви в JavaScript числени методи могат да се използват:
Bubble сортиране
Това е един от традиционните техники, използвани за сортиране по структури от данни в C, C + + езици за програмиране. В тази техника, като броят им в сравнение с всеки друг и в зависимост от ценностите, които те се разменят.
Пример - сортиране използване Bubble сортиране Техника"text/javascript" > <Скрипт тип = "текст / JavaScript"> new Array ( 10 , 12 , 11 , 20 , 2 ) ; Var марки = нови Array (10, 12, 11, 20, 2); var i = 0 ; i < marks . length ; i ++ ) //Hold the first element за (Var I = 0; I <марки. дължина; I + +) / / Задръжте Първият елемент ( var j = i + 1 ; j < marks. length ; j ++ ) //Hold the next element from the first element за (Var J = I + 1; к <марки. дължина; к + +) / / Задръжте следващия елемент от първия елемент ( Number ( marks [ i ] ) > Number ( marks [ j ] ) ) //comparing first and next element ако (номер (марки [I])> Брой (марки [к])) / / сравняване на първия и следващия елемент ( j ] ; tempValue = марки [к]; = marks [ i ] ; [Марка к] = марка [в]; = tempValue ; марки [I] = tempValue; ) ) ) marks ) ; документ. Запис (марки); script > </ Марка> </ ръкопис>Изход: 2,10,11,12,20
Тук можете да видите, че аз съм създаване на временна променлива да държи стойност, така че данните могат да бъдат обменяни.
Използването на Prototype Длъжност
Protoype функция в JavaScript може да замени съществуващата функционалност на обекта. Така че сега с тази техника array.sort да направите цифрови операция подреди условие, че са предоставили на функции за сортиране на числови данни.
Пример - Prototype Длъжност"text/javascript" > <Скрипт тип = "текст / JavaScript"> = function ( ) Array. Прототип. Подреди = функция () ( i = 0 ; i < this . length ; i ++ ) за (I = 0; Аз <това. дължина; I + +) ( j = i + 1 ; j < this. length ; j ++ ) за (J = I + 1; к <това. дължина; к + +) ( Number ( this [ i ] ) > Number ( this [ j ] ) ) ако (номер (това [I])> Брой (това [к])) ( [ j ] ; tempValue = това [к]; j ] = this [ i ] ; това [к] = това [I]; i ] = tempValue ; това [I] = tempValue; ) ) ) ) new Array ( 10 , 12 , 11 , 20 , 2 ) ; Var марки = нови Array (10, 12, 11, 20, 2); ; марки. подреди (); marks ) ; документ. Запис (марки); script > </ Това> </ ръкопис>Изход: 2,10,11,12,20
Ето аз съм висш съществуващия метод масив подреди, като се обадите метод балон подреди вътре в нея. Така че сега. Подреди () метод, ще го подредя числено, а не по азбучен ред.
Промяна на функционалността на съществуващите метод на сортиране
В тази техника може да мине един параметър на функцията масив подреди което е функция, която ще съдържа инструкции за това как да се сравни масив елементи.
Пример:"text/javascript" > <Скрипт тип = "текст / JavaScript"> a , b ) //Sort array in ascending order функция ArraySortAscending (A, B) / / сортиране масив във възходящ ред ( a - b ) ; връщане (а - б); ) a , b ) //Sort array in descending order функция ArraySortDescending (A, B) / / сортиране масив в низходящ ред ( b - a ) ; връщане (б - а); ) new Array ( 10 , 12 , 11 , 20 , 2 ) ; Var марки = нови Array (10, 12, 11, 20, 2); ArraySortAscending ) ; //This will sort the array in ascending order марки. подреди (ArraySortAscending); / / Това ще сортира масива във възходящ ред marks + ' \n ' ) ; документ. напишете (+ N '' \ марки); new Array ( 10 , 12 , 11 , 20 , 2 ) ; Var марки = нови Array (10, 12, 11, 20, 2); ArraySortDescending ) ; //This will sort the array in descending order марки. подреди (ArraySortDescending); / / Това ще сортира масив в низходящ ред marks ) ; документ. Запис (марки); </ Ръкопис>Изход:
2,10,11,12,20
20,12,11,10,2


































