.sort strange behavior

Mark Volkmann r.mark.volkmann at gmail.com
Sat Oct 21 14:11:21 UTC 2017


By default sort converts the values to strings and compares there Unicode values. For example, 10 would come before 3. In the first example you are overriding the default sort comparison in a way that is correct for numbers.

---
R. Mark Volkmann
Object Computing, Inc.

> On Oct 21, 2017, at 7:57 AM, Cyril Auburtin <cyril.auburtin at gmail.com> wrote:
> 
> ```js
> [0,1,3,4,7,8,8,9,13,17,22,23,26].concat([16,19,21,22,25,32]).sort((a,b)=>a-b)
> // [ 0, 1, 3, 4, 7, 8, 8, 9, 13, 16, 17, 19, 21, 22, 22, 23, 25, 26, 32 ]
> 
> [0,1,3,4,7,8,8,9,13,17,22,23,26].concat([16,19,21,22,25,32]).sort()
> // [ 0, 1, 13, 16, 17, 19, 21, 22, 22, 23, 25, 26, 3, 32, 4, 7, 8, 8, 9 ]
> ```
> In the second case, it produces a weirdly sorted array, on node 8, chrome or firefox
> 
> What could explain this?
> _______________________________________________
> es-discuss mailing list
> es-discuss at mozilla.org
> https://mail.mozilla.org/listinfo/es-discuss


More information about the es-discuss mailing list