Hem > Javascript > JavaScript självstudie - Sortering Numerisk Array

JavaScript självstudie - Sortering Numerisk Array

I JavaScript när du vill sortera en array blir det i alfabetisk ordning. Det betyder att siffrorna är sorterade på grundval av den första siffran som förekommer i flera system (1 - 9) och inte genom att jämföra värdet. Så om jag vill sortera en matris med värden 10,12,11,20,2,25,30 får sorteras 10,12,11,20,2,25,30 med inbyggd JavaScript sorteringssätt matris.

Exempel - Traditionella Array Sortera metod

  "text/javascript" > <Script type = "text / javascript">
      new Array ( 10 , 12 , 11 , 20 , 2 , 25 , 30 ) ; var märken = new Array (10, 12, 11, 20, 2, 25, 30);
      ; märken. sortera (); 
      marks ) ; dokument. skriva (märken);
 </ Script> 

Utgång: 10,11,12,2,20,25,30
Här ser du att antalet 2 kommer efter 12 och före 20 innan de finns att få sortera baserat på den första siffran och nästa siffra.

Så för att sortera en array i JavaScript numeriskt följande metoder kan användas:
Bubble Sortera

Detta är en av de traditionella sortering tekniker som används i datastrukturer i C, C + + programmering språk. Med denna teknik siffrorna jämförs med varandra och beroende på vilka värderingar de löses in.
Exempel - Sortering hjälp Bubble Sortera Technique

  "text/javascript" > <Script type = "text / javascript">
         new Array ( 10 , 12 , 11 , 20 , 2 ) ; var märken = new Array (10, 12, 11, 20, 2);
         var i = 0 ; i < marks . length ; i ++ ) //Hold the first element for (var i = 0; i <varumärken. längd; i + +) / / Håll det första elementet
	 (
		 var j = i + 1 ; j < marks. length ; j ++ ) //Hold the next element from the first element for (var j = i + 1, j <varumärken. längd, j + +) / / Håll nästa element från det första elementet
		 (
			 Number ( marks [ i ] ) > Number ( marks [ j ] ) ) //comparing first and next element if (Antal (märken [i])> Antal (märken [j])) / / jämför första och nästa element
			 (
				 j ] ; tempValue = märken [j];	
				 = marks [ i ] ; Marks [j] = märken [i];
				 = tempValue ; Marks [i] = tempValue;
			 )
		 )
	 )
         marks ) ; dokument. skriva (märken);
 script > </ Märken> </ script> 

Utgång: 2,10,11,12,20
Här ser du att jag skapar en temporär variabel för att hålla värdet så att data kan utbytas.

Använda Prototype Funktion

Protoype funktion i JavaScript kan åsidosätta befintliga funktioner på objektet. Så nu med denna teknik array.sort kan göra numeriska sortera operation under förutsättning att du har gett den funktionalitet för sortering numeriska data.
Exempel - Prototype Funktion

  "text/javascript" > <Script type = "text / javascript">
 = function ( ) Array. Prototyp. Sort = funktion ()
 (
	 i = 0 ; i < this . length ; i ++ ) for (i = 0; i <denna. längd; i + +)
	 (
		 j = i + 1 ; j < this. length ; j ++ ) för (j = i + 1, j <detta. längd, j + +)
		 (
			 Number ( this [ i ] ) > Number ( this [ j ] ) ) if (Antal (detta [i])> Antal (detta [j]))
			 (
				 [ j ] ; tempValue = detta [j];
				 j ] = this [ i ] ; detta [j] = detta [i];
				 i ] = tempValue ; detta [i] = tempValue;
			 )
		 )
	 )
 )
 new Array ( 10 , 12 , 11 , 20 , 2 ) ; var märken = new Array (10, 12, 11, 20, 2);
 ; märken. sortera ();
 marks ) ; dokument. skriva (märken);
 script > </ Denna> </ script> 

Utgång: 2,10,11,12,20
Här är jag överskuggande de befintliga metoderna matrisen sortera genom att ringa metod bubbla sortera i den. Så nu. Sortera ()-metoden kommer att lösa det numeriskt, inte alfabetiskt.

Ändra funktionaliteten i befintliga Sortera metod

Med denna teknik kommer vi att passera en parameter till en matris sortera funktion som är en funktion som innehåller instruktioner om hur att jämföra array element.
Exempel:

  "text/javascript" > <Script type = "text / javascript">
 a , b ) //Sort array in ascending order funktion ArraySortAscending (a, b) / / Sortera array i stigande ordning
 (	
	 a - b ) ; avkastning (a - b); 
 )

 a , b ) //Sort array in descending order funktion ArraySortDescending (a, b) / / Sortera array i fallande ordning
 (	
	 b - a ) ; avkastning (b - a); 
 )

 new Array ( 10 , 12 , 11 , 20 , 2 ) ; var märken = new Array (10, 12, 11, 20, 2);
 ArraySortAscending ) ; //This will sort the array in ascending order märken. sortera (ArraySortAscending), / / Detta kommer sortera array i stigande ordning
 marks + ' \n ' ) ; dokument. skriva (märken + '\ n');

 new Array ( 10 , 12 , 11 , 20 , 2 ) ; var märken = new Array (10, 12, 11, 20, 2);
 ArraySortDescending ) ; //This will sort the array in descending order märken. sortera (ArraySortDescending), / / Detta kommer sortera array i fallande ordning
 marks ) ; dokument. skriva (märken);
 </ Script> 

Utgång:
2,10,11,12,20
20,12,11,10,2


Anpassad sökning

Populära artiklar:

Dela och njut:
  • 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: Kategorier: Javascript Taggar:
  1. Inga kommentarer ännu.
  1. Inga trackback ännu.