前言:本文主要是我对js sort ()函数的一些疑问和解决思路
另一方面,使用sort函数1.1默认情况下,sort ()按从小到大的顺序对数组元素进行排序。
2.1问题是,sort ) )在每个项目中是String ) )来转换函数,返回表示相应类型值的字符串,并比较字符串以确定顺序。 如果数组中的所有元素都是数字,则为、
有时也将数组转换为字符串,然后进行比较、排序。
字符串排序遵循以下原则:
非空字符串空字符串从第一个字符的ASCII值代码进行比较。 如果一个第一个字符大于另一个,则它将大于另一个,以后的字符将不再进行比较。 长度不能直接决定大小。 字符串的大小由左起第一个字符决定。 因此,比较[0、1、5、10、15]的大小时,sort会得到0、1、10、15、5的结果。 与上述字符串相比,您会发现5是最大的。 因为这5个是第一名,5个数字中没有一个比那个大。
3.1为了解决问题,必须让sort ) )方法接收比较函数。 例如:
功能比较(a,b ) if (ab ) {返回- 1; }elseif(ab ) { return 1; } else { return 0; } let values=[ 0,1,5,10,15 ]; values.sort (比较; 我们的compare可以告诉我们sort数组每两个数的大小。 然后,sort可以知道哪个更大还是更小。