JavaScript:数组的sort()排序(遇到负数时如何处理)
Sort()语法:
/** * sortFun:可选,设置排序的逻辑,必须是函数 */ arrayObject.sort(sortFun)
注:在使用sort()函数时,如果不是传函数参数的话,会以默认的方式进行排序,即按照字符编码的顺序进行排序。
例如:
var arr = [57,34,2,5,7,9,65,857] console.log(arr.sort());
// 打印结果为[ 2, 34, 5, 57, 65, 7, 857, 9 ]
由此可见按照我们理解的数字大小来看排序就乱了
如何解决呢?
只需要往sort()函数里面传参就可以了,例如:
// 升序 function ascOrder (a, b) { return a - b } var arr = [3,4,6,76,323,21,35,54]; arr.sort(ascOrder); // 结果:[ 3, 4, 6, 21, 35, 54, 76, 323 ] // 降序 function desOrder(a, b) { return b - a } var arr = [3,4,6,76,323,21,35,54]; arr.sort(desOrder);
// 结果:[ 323, 76, 54, 35, 21, 6, 4, 3]
在上述代码中,a,b两个参数中若a<b,在排序后的数组中a应当在b之前,返回一个小于0的值;若a=b,则返回0;若a大于b,则返回一个大于0的值。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步