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

В 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);
      ; марок. Sort (); 
      marks ) ; документа. написать (марок);
 </ Script> 

Вывод: 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; J <марок. длины; J + +) / / содержит следующий элемент из первого элемента
		 (
			 Number ( marks [ i ] ) > Number ( marks [ j ] ) ) //comparing first and next element если (номер (знаки [I])> номер (знаки [j])) / / сравнение первого и следующего элемента
			 (
				 j ] ; tempValue = знаки [J];	
				 = marks [ i ] ; знаки [J] = знаки [I];
				 = tempValue ; знаки [I] = tempValue;
			 )
		 )
	 )
         marks ) ; документа. написать (марок);
 script > </ Знаки> </ 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. Прототипа. Рода = функция () (для (i = 0; i <этом. Длины; I + +) (для (J = I + 1; J <этом. Длины , J + +) (if (номер (это [I])> номер (это [J])) (tempValue = Это [J]; это [J] = это [I]; это [I] = tempValue;) ))) = VAR марок новой Array (10, 12, 11, 20, 2); марок. Sort (); документ. написать (марок); </ это> </ script> 

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

Изменение функций существующих Упорядочить

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

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

 a , b ) //Sort array in descending order Функция ArraySortDescending (A, B) / / Сортировка массива в порядке убывания
 (	
	 b - a ) ; возвращение (B -); 
 )

 new Array ( 10 , 12 , 11 , 20 , 2 ) ; VAR новых марок = Array (10, 12, 11, 20, 2);
 ArraySortAscending ) ; //This will sort the array in ascending order марок. Sort (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 марок. Sort (ArraySortDescending) / / Это будет отсортировать массив в порядке убывания
 marks ) ; документа. написать (марок);
 </ Script> 

Вывод:
2,10,11,12,20
20,12,11,10,2

Пользовательский поиск


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

Tags: Категории: Javascript Метки:
  1. Комментариев пока нет.
  1. Нет уведомлений.