JS Array Prototype Sort - thelastmile/FreeCodeCamp GitHub Wiki
The sort()
method sorts the elements of an array in place and returns the sorted array.
arr.sort([compareFunction])
Parameter | Description | Necessity |
---|---|---|
compareFunction | Optional. The name of the function used to determine the order of the elements. If omitted, the elements are sorted in ascending, Unicode character order. | Optional |
The sorted array.
The sort
method sorts the Array
object in place; no new Array
object is created during execution.
If you supply a function in the compareFunction
argument, it must return one of the following values:
-
A negative value if the first argument passed is less than the second argument.
-
Zero if the two arguments are equivalent.
-
A positive value if the first argument is greater than the second argument.
var fruit = ['cherries', 'apples', 'bananas'];
fruit.sort(); // ['apples', 'bananas', 'cherries']
var scores = [1, 10, 2, 21];
scores.sort(); // [1, 10, 2, 21]
// Watch out that 10 comes before 2,
// because '10' comes before '2' in Unicode code point order.
var things = ['word', 'Word', '1 Word', '2 Words'];
things.sort(); // ['1 Word', '2 Words', 'Word', 'word']
// In Unicode, numbers come before upper case letters,
// which come before lower case letters.
var a = new Array(4, 11, 2, 10, 3, 1);
var b = a.sort();
document.write(b);
document.write("<br/>");
// This is ASCII character order.
// Output: 1,10,11,2,3,4)
// Sort the array elements with a function that compares array elements.
b = a.sort(CompareForSort);
document.write(b);
document.write("<br/>");
// Output: 1,2,3,4,10,11.
// Sorts array elements in ascending order numerically.
function CompareForSort(first, second)
{
if (first == second)
return 0;
if (first < second)
return -1;
else
return 1;
}