Slide 14
Slide 14 text
Sorting Numbers
Elements are converted into strings
and sorted lexicographically
const nums = [30, 3, 10, 1, 2, 20];
nums.sort((a, b) => a - b);
console.log(nums);
[1, 2, 3, 10, 20, 30]
Sort comparator returns
< 0 if (a < b)
> 0 if (a > b)
= 0 if (a == b)
const nums = [30, 3, 10, 1, 2, 20];
nums.sort();
console.log(nums);
[1, 10, 2, 20, 3, 30]
Using a Custom Comparator
function compareByAgeSurnameName(a, b) {
let cmp = a.age - b.age;
if (cmp != 0) return cmp;
cmp = a.surname.localeCompare(b.surname);
if (cmp != 0) return cmp;
return a.name.localeCompare(b.name);
}
Composite Key Comparator
const pepole = [{name: 'foo', surname: 'bar', 'age': 30}];
pepole.sort(compareByAgeSurnameName);