0%

为什么[0,1,5,10,15]使用sort()重排序后是[0,1,10,15,5]

记录一下疑惑

为什么[0,1,5,10,15]使用sort()重排序后是[0,1,10,15,5]

我们知道,sort()方法默认按升序排列数组项,即最小的值位于最前面,最大的值排在最后面。但是为了排序,sort()方法会调用每个数组项的toString()方法,然后比较得到的字符串,以确定如何排序。

JS字符串在进行大小比较的时候,会根据第一个字符的ASCII码进行比较。因为5的ASCII码值大于1的ASCII码值,顾字符串比较时’5’>’10’。这就解释了上面的问题。