Главная > Javascript > JavaScript Учебник - Сортировка числовых массивов

Учебник JavaScript - сортировка числовой массив

В JavaScript, когда вы хотите отсортировать массив он получает отсортированы по алфавиту. Это означает, что номера сортируются на основе первой цифрой, происходящих в системе счисления (1 - 9), а не путем сравнения стоимости. Так что, если я хочу, чтобы сортировать массив со значениями 10,12,11,20,2,25,30 получает отсортировано по 10,12,11,20,2,25,30 использованием встроенного массива JavaScript рода методом.

Пример - традиционный метод сортировки массива

  "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 Численно следующие методы могут быть использованы:
Сортировать пузыря

Это один из традиционных методов сортировки, используемые в структуры данных в C, C + + Языки программирования. В этой технике номера сравниваются друг с другом и в зависимости от ценностей, которые они поменяются местами.
Пример - Сортировка использованием пузыря Сортировать Техника

  "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 = 0; я <знаков. длину; я + +) / / Hold первый элемент
	 (
		 var j = i + 1 ; j < marks. length ; j ++ ) //Hold the next element from the first element для VAR (J = I + 1; полярность <. длину; к + +) / / Hold следующий элемент из первого элемента
		 (
			 Number ( marks [ i ] ) > Number ( marks [ j ] ) ) //comparing first and next element если (номер (знаки [я])> номер (знаки [у])) / / сравнения первый и следующий элемент
			 (
				 j ] ; tempValue = знаки [у];	
				 = marks [ i ] ; знаки [у] = знаки [я];
				 = tempValue ; знаки [г] = tempValue;
			 )
		 )
	 )
         marks ) ; документа. написать (марок);
 script > </ Марки> </> сценарий 

Вывод: 2,10,11,12,20
Здесь вы видите, что я создаю временную переменную для хранения значения, так что данные могут быть обменены.

Использование прототипа функции

Protoype функции в JavaScript можно переопределить существующие функциональности объекта. Так что теперь с этим методом, можно сделать array.sort числовые операции рода условии, что вы предоставили функциональность для сортировки числовых данных.
Пример - прототип функции

 "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 > <Скрипт типа = "текст / JavaScript"> Array. Прототипа. Сортировать = функция () (для = 0; я <это. Длину; я + +) (для (J = I + 1; у <это. Длину ; к + +) (если (номер (это [я])> номер (это [у])) (tempValue = это [у], что [у] = это [г], что я] [= tempValue;) ))) = уаг марок нового Array (10, 12, 11, 20, 2); знаков. сортировать (); документ. написать (марок); </ это> </> сценарий 

Вывод: 2,10,11,12,20
Я здесь главная существующий метод сортировать массив, вызывая метод пузырь рода внутри него. Так что теперь. Сортировать () метод сортировки численно, а не в алфавитном порядке.

Изменение функциональность существующих Сортировать Метод

В этом приеме мы передадим параметр функции массив рода, которая является функцией, которая содержит инструкции о том, чтобы сравнить элементы массива.
Пример:

  "text/javascript" > <Скрипт типа = "текст / JavaScript">
 a , b ) //Sort array in ascending order Функция ArraySortAscending (б) / / Сортировка массива в порядке возрастания
 (	
	 a - b ) ; возвращения  - б); 
 )

 a , b ) //Sort array in descending order Функция ArraySortDescending (б) / / Сортировка массива в порядке убывания
 (	
	 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 ' ) ; документа. написать (+ п '' \ знаки);

 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


Система пользовательского поиска

Популярные статьи:

Делите и наслаждайтесь:
  • Print
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • DZone
  • email
  • IndianPad
  • LinkedIn
  • Live
  • MySpace
  • Netvibes
  • RSS
  • Technorati
  • Yahoo! Bookmarks
  • Yahoo! Buzz
  • Reddit
  • Add to favorites
  • PDF
  • Twitter
Tags: Категории: Javascript Тэги: