.sort strange behavior

# Cyril Auburtin (10 months ago)
[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?

# Damian Senn (10 months ago)
# Cyril Auburtin (10 months ago)

Oh thanks right, alphabetical order by default so

2017-10-21 15:00 GMT+02:00 Damian Senn <damian.senn at gmail.com>:

# Mark Volkmann (10 months ago)

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.