Functional Programming - Sort an Array Alphabetically using the sort Method

Tell us what’s happening:
Describe your issue in detail here.
I still do not understand this example:

function reverseAlpha(arr) {
  return arr.sort(function(a, b) {
    return a === b ? 0 : a < b ? 1 : -1;
  });
}

reverseAlpha(['l', 'h', 'z', 'b', 's']);

especially this part : ```
return a === b ? 0 : a < b ? 1 : -1;

Can you explain that to me, thank you.

1 means that a is greater than b by the ordering criterion, while -1 means that a is less than b by some ordering criterion. All elements are compared against each other that way until the array is sorted. a === b ? 0 means that if they are equal then they don’t move, and as far as I know you can drop that condition altogether, at least for this piece of code. Btw I just quoted MDN, you might wanna take a look at it. Array.prototype.sort() - JavaScript | MDN
Consider this

let nums = [1, 2, 1, 3]

function sorted(a) {
    return a.sort((a, b) => {
        return a < b ? 1 : -1
    })
}

console.log(sorted(nums))
1 Like

Thank you, but can you tell me what type of function they are using in this code: a === b ? 0 : a < b ? 1 : -1;

That is a ternary operator, it equals to

if (a === b) {
return 0
} else if (a < b) {
return 1 
} else {
return -1
}
1 Like