w3resource

JavaScript sort() Method: Array Object

Description

The sort() method is used to sort the elements of an array.

Version

Implemented in JavaScript 1.1

Syntax

sort(compareFunction)

Parameters

compareFunction: The function defines the sort order. If it is not specified the array is sorted in dictionary order, not in numeric order. For example, "30" comes before "8", whereas a numeric sort 8 comes before 30.

If compareFunction is supplied, the array elements are sorted according to the return value of the compare function. If x and y are two elements being compared, then:

If compareFunction(x, y) is less than 0, sort y to x lower index than x.

If compareFunction(x, y) returns 0, leave x and y unchanged with respect to each other, but sorted with respect to all different elements.

If compareFunction(x, y) is greater than 0, sort y to a higher index than x.

Example - 1

In the following web document, sort() method sorts the various array (string, number, mixed) with and without compare function.

HTML Code

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf8" />
<title>JavaScript sort() method example</title>
<style type="text/css">
h1 {color:red}
</style>
</head>
<body>
<h1>JavaScript : sort() method</h1>
<script src="array-sort-example1.js"></script>
</body>
</html>

JS Code

var stringArray = new Array("79","A","345","Good");
var numberArray = new Array(54,11,3,600);
var mixedArray = new Array("A900","99","67",54,11,3,600);
function compareNumbers(x, y)
{
'use strict';
return x - y;
}
var newParagraph = document.createElement("p");
var newText = document.createTextNode("String Array : " + stringArray); 
newParagraph.appendChild(newText); 
document.body.appendChild(newParagraph); 
var newParagraph1 = document.createElement("p"); 
var newText1= document.createTextNode("Sorted : " + stringArray.sort());
newParagraph1.appendChild(newText1); 
document.body.appendChild(newParagraph1); 
var newParagraph2 = document.createElement("p"); 
var newText2= document.createTextNode("Number Array : " + numberArray.join()); 
newParagraph2.appendChild(newText2); 
document.body.appendChild(newParagraph2); 
var newParagraph3 = document.createElement("p"); 
var newText3 = document.createTextNode("Sorted without a compare function :" + numberArray.sort()); 
newParagraph3.appendChild(newText3); 
document.body.appendChild(newParagraph3); 
var newParagraph4 = document.createElement("p"); 
var newText4 = document.createTextNode("Sorted with compare function : " + numberArray.sort(compareNumbers)); 
newParagraph4.appendChild(newText4); 
document.body.appendChild(newParagraph4); 
var newParagraph5 = document.createElement("p"); 
var newText5 = document.createTextNode("Mixed Array : " + mixedArray); 
newParagraph5.appendChild(newText5); 
document.body.appendChild(newParagraph5); 
var newParagraph = document.createElement("p"); 
var newText = document.createTextNode("Sorted without a compare function : " + mixedArray.sort() ); 
newParagraph.appendChild(newText); 
document.body.appendChild(newParagraph); 
var newParagraph = document.createElement("p"); 
var newText = document.createTextNode("Sorted with compareNumbers : " + mixedArray.sort(compareNumbers)); 
newParagraph.appendChild(newText); 
document.body.appendChild(newParagraph); 

View the example in the browser

Example - 2

In the following web document, sort() method sorts an array containing numeric numbers in ascending and descending order with the help of two functions.

HTML Code

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf8" />
<title>JavaScript sort() method example using numeric value</title>
<style type="text/css">
h1 {color:red}
</style>
</head>
<body>
<h1>JavaScript : sort() method using numeric value</h1>
<hr>
<script src="array-sort-example2.js"></script>
</body>
</html>

JS Code

var numberArray = new Array(54,11,3,600,-100,40,0);
function Ascending(x, y) 
{
'use strict'; 
return x - y;
}
function Descending(x, y) 
{
'use strict';  
return y - x;
}
var newParagraph = document.createElement("p"); 
var newText = document.createTextNode("List of the numbers : " + numberArray);
newParagraph.appendChild(newText);
document.body.appendChild(newParagraph);
var newParagraph1 = document.createElement("p");
var newText1 = document.createTextNode("Sorted in Ascending order :" + numberArray.sort(Ascending));
newParagraph1.appendChild(newText1); 
document.body.appendChild(newParagraph1);
var newParagraph2 = document.createElement("p");
var newText2 = document.createTextNode("Sorted in Descending order :" + numberArray.sort(Descending)); 
newParagraph2.appendChild(newText2);
document.body.appendChild(newParagraph2); 

View the example in the browser

Practice the example online

See the Pen javascript-common-editor by w3resource (@w3resource) on CodePen.

See also:

JavaScript Core objects, methods, properties.

Previous: JavaScript splice() Method : Array Object
Next: JavaScript toSource() Method: Array Object

Test your Programming skills with w3resource's quiz.



JavaScript: Tips of the Day

Returns the difference (in days) between two dates

Example:

const tips_DiffBetweenDates = (dateInitial, dateFinal) =>
  (dateFinal - dateInitial) / (1000 * 3600 * 24);
console.log(tips_DiffBetweenDates(new Date('2020-05-13'), new Date('2020-06-05')));

Output:

23