为了账号安全,请及时绑定邮箱和手机立即绑定

数组排序问题

function sortNum(a,b) {

       return a-b;

}

这个怎么就能实现升序排序了?怎么这个样子



正在回答

3 回答

注意: 该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下: 

  若返回值<=-1,则表示 A 在排序后的序列中出现在 B 之前。
  若返回值>-1 && <1,则表示 A 和 B 具有相同的排序顺序。
  若返回值>=1,则表示 A 在排序后的序列中出现在 B 之后。

原文中说的:(以上),a-b<=-1(因为这里是a,b整数)那么a就是排在b之前。。所以就是升序小的排在前面。。。sort 是根据反回值来操作哪个做前面哪个做后面的。。而return a-b  就是给sort的返回值,然后sort再进行判断,最后就是升序    如果下b-a 那就是降序 

0 回复 有任何疑惑可以回复我~

方法错误这个不能排序 可以用function Gba(a,b){ return a?b?a:b} 这样一句话来排序

0 回复 有任何疑惑可以回复我~

这个只是一个比较两个数大小的函数,并不是用来排序的。 sort()才是排序函数,array.sort()这个函数自己会进行一些排序的算法,具体我不知道他用的是什么,大概也就是哪几种,快排,冒泡,归并之类的,这个不用管。但是排序需要一个标准,那就是如何比较两个数的大小,这个你可以告诉这个sort函数,或者叫做指定。所以你问的这个函数,相当于告诉sort函数,如果a-b>0,那么a排在b的后面,a-b<0排在前面,a=b两个相等,两个一样。另外我觉得课程里说的有点困惑,按照Javascript的文档描述,传递给sort()的函数,返回值应该是>0,<0 和=0,并不是和1,-1相关。

2 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
JavaScript进阶篇
  • 参与学习       468184    人
  • 解答问题       21891    个

本课程从如何插入JS代码开始,带您进入网页动态交互世界

进入课程

数组排序问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信