js中sort()对数组排序的原理是啥?为何无法降序字母

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js中sort()对数组排序的原理是啥?为何无法降序字母相关的知识,希望对你有一定的参考价值。

var d = ["c" , "a" , "b" , "d" , "e" ];
document.write(d.sort(function(a,b)return b-a;));
这种写法的原理是什么,为何无法对字母降序?谢谢

sort的函数里面 a 和 b 一般都是number型或是可以转换成number的字符串,进行减操作。
然而你的代码中,a b 都为字母,无法进行减法操作,所以不能进行排序。
建议你用 d.sort().reaverse();追问

为何这样写可以升序或降序,原理是什么

追答

sort的排序是安装字母顺序进行排列的,更精确的说是按照ASCII值排序的。

追问

我指的是为何加一个返回值为a-b或b-a的函数可以进行升序或降序,想了解下这个的原理

追答

具体原理那你只能看js的sort的源码实现了。

追问

谢谢

参考技术A 因为sort方法的返回值为0,-1,1. 想要实现降序,你把return改下就可以了

以上是关于js中sort()对数组排序的原理是啥?为何无法降序字母的主要内容,如果未能解决你的问题,请参考以下文章

Java中对数组升序排列用Arrays.sort( )方法,那降序排列用啥方法?

js sort 数组中包含数组怎么排序

java中怎样对一个整数数组进行降序排序

sort算法的原理?

js中sort()方法的用法,参数以及排序原理

js sort() 数字排序 不太理解