js数组排序中大小顺序的疑问

小白不太懂,请问为何x>y 返回1 就是从小到大排序。 而x>y 返回-1 就是从小到大排序。

阅读 2.4k
2 个回答

arr.sort(compare),compare是一个比较函数,接受a和b两个参数,如果要升序排列,a和b比较,小于返回-1,大于返回-1,相等返回0,降序的话就反过来。排序思想应该是类似于冒泡排序思想的,通过前后相邻的两个数进行比较,例如8与16,这时将8作为方法函数compare(a,b)参数列表中的a,16作为b,通过语句return a - b;返回一个数值,8-16=-8, 若返回值>=1,则表示a在排序后的序列中出现在b之后,反之在b之前,所以8会在排序后出现在16之前,此时,新的数据序列为8,16,50,6,100,1,再将16作为a,50作为b进行上述的做法,第一轮下来,100就会排在最后,又开始新的一轮排序

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题