倒序排序哪里出错了呢?
javascript吧
全部回复
仅看楼主
level 2
function reverseSort(a1,a2){
return a2-a1;
}
words.sort(reverseSort);
代码如上,输出的结果还是words原本的顺序,为啥不是倒序呢?
PS:我知道words.sort().reverse()可以得到我想要的答案,但我就是想试试自定义比较器啊,希望大佬解答赐教下!谢谢了~
2019年11月12日 08点11分 1
level 2
求个大佬解答下啊[乖]
2019年11月13日 00点11分 2
level 8
js sort函数传递function确实比较方便,你是不是words数组是不是字符串数组,数字的话可以直接像你这么用,如果是字符串需要这样
var str = ['cwalk','map','aside','katakana'];
str.sort(function(a,b){return b.charCodeAt()-a.charCodeAt()});
2019年11月13日 02点11分 3
哇,多谢大佬提醒!一时疏忽,字符串是不能做减法操作的。但是我有个问题,charCodeAt()不应该是有参数来指定对应的是哪个位置的字符对应的Unicode码吗?为什么这里不需要参数?
2019年11月13日 04点11分
哦,我应该理解了。字符串默认是字典序,一个一个先比较字母,这里定义的比较器就是对字母怎样比较大小的比较算法。
2019年11月13日 04点11分
@天使风流浪子 对的,它会依次比较字符的每个元素
2019年11月14日 03点11分
1