JavaScript
provides sort function to sort elements of array. By default, sort function
converts everything to string and uses lexicographical order.
Syntax
sort([function])
var arr =
[1, 2, 15, 25, 3];
arr.sort();
As I said,
sort function sorts in lexicographical order by default, so above statement
sorts elements in following order.
1,15,2,25,3
But this
is not what we want. We want to sort elements in ascending order. You can do
this by passing custom function like below as an argument to sort() function. Our
custom function should take two arguments a, b and return
1 if a > b,
-1 if a < b
0 if a == b
function
compare(a, b){
if(a > b) return 1;
else if(a < b) return -1;
else return 0;
}
Sort array
using following statement.
arr.sort(compare);
array.html
<!DOCTYPE html> <html> <head> <title>Array</title> </head> <body> <script type="text/javascript"> function compare(a, b) { if (a > b) return 1; else if (a < b) return -1; else return 0; } var arr = [1, 2, 15, 25, 3]; document.write("arr = " + arr + "<br />"); arr.sort(compare); document.write("arr = " + arr + "<br />"); </script> </body> </html>
Open above
page in browser, you can able to see following data.
arr =
1,2,15,25,3
arr =
1,2,3,15,25
To sort
elements in descending order, use following compare function.
function
compare(a, b){
if(a > b) return -1;
else if(a < b) return 1;
else return 0;
}
No comments:
Post a Comment