alphacyberranger@sh.itjust.works to Programmer Humor@programming.dev · 1 year agoI'll just sort it myselfsh.itjust.worksimagemessage-square49fedilinkarrow-up1929arrow-down112
arrow-up1917arrow-down1imageI'll just sort it myselfsh.itjust.worksalphacyberranger@sh.itjust.works to Programmer Humor@programming.dev · 1 year agomessage-square49fedilink
minus-squarejormaig@programming.devlinkfedilinkarrow-up12arrow-down3·1 year agoBecause when it’s sorting some of them as ints and some of them as strings. JavaScript has implicit conversion to string.
minus-squarekevincox@lemmy.mllinkfedilinkarrow-up5·1 year agoWrong. JavaScript sort’s default comparison function always converts to strings.
minus-squarejormaig@programming.devlinkfedilinkarrow-up4arrow-down1·1 year agoOnly if one of them is a string right? If you have only numbers then it works fine right? Right? (Please say that I’m right 😭)
minus-squarekevincox@lemmy.mllinkfedilinkarrow-up5·edit-21 year agoNo. It always compares by converting to string. I actually think this is more consistent then having different behaviour if you have a string somewhere in your list. Basically the default comparator is a.sort((a, b) => `${a}` < `${b}` ? -1 : 1).
Because when it’s sorting some of them as ints and some of them as strings. JavaScript has implicit conversion to string.
Wrong. JavaScript sort’s default comparison function always converts to strings.
Only if one of them is a string right? If you have only numbers then it works fine right? Right? (Please say that I’m right 😭)
No. It always compares by converting to string. I actually think this is more consistent then having different behaviour if you have a string somewhere in your list.
Basically the default comparator is
a.sort((a, b) => `${a}` < `${b}` ? -1 : 1)
.