Sort strings by using “less/greater than” comparison operators in comparator

后端 未结 2 1722
长发绾君心
长发绾君心 2020-12-21 00:00

Today I found a strange for me implementation of strings sorting:

[\'Data\', \'Chata\', \'Clata\'].sort(function(a, b) { return a > b});

相关标签:
2条回答
  • 2020-12-21 00:47

    I'm not entirely sure how it manages to work.

    EDIT it actually doesn't.

    I produced a test using 1000 numbers (https://jsfiddle.net/alnitak/80cje6gt/) and the single comparator doesn't produce the correct sort order:

    var m = 0;
    a.sort(function(a, b) { ++m; return a > b} );
    
    var n = 0;
    b.sort(function(a, b) { ++n; return a < b ? -1 : a > b ? 1 : 0});
    
    0 讨论(0)
  • 2020-12-21 00:51

    When comparing strings, comparison is done letter by letter. So c has lower symbol value than d (Check this table)

    0 讨论(0)
提交回复
热议问题