Below is the code:
<script type="text/javascript">
function sortNumber(a,b) {
return a - b;
}
var n = ["10", "5", "40", "25", "100", "1"];
document.write(n.sort(sortNumber));
</script>
Is the sortNumber
function for sorting a number? What do a and b mean and why does it exist? Why sortNumber
in n.sort(sortNumber)
doesn't specify any parameter of a
and b
?
The JavaScript sort()
function may or may not take a parameter.
The parameter would be a function - meaning what function is to be used to assess which of two elements should be before the other
.
The n array is made of strings representing numbers.
Doing a simple sort()
without a function, an alphabetical order would be used: the result would be
"1", "10", "25"... "5"
and is not correct.
Providing a function, sortNumber
, tells sort
to call that function with two elements of the array each time the sort
algorithm wants to know which of the two items is before the other.
Thus sortNumber
provided with two items, does a numerical
operation to return either
You need to consider what sort()
consumes; sort()
consumes a function that defines the sort oder. To simplify:
array.sort(sortfunc)
So when you define the function sortNumber, you are actually defining how sort will sort the array.
So if we define a function that's body is defined as:
return a - b;
We are asking to sort by ascending order
If we define a function with body:
return b - a;
We are asking to sort by descending order
Hope this helps
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With