老师,有x<y这个条件,为啥输出顺序是从大到小?不太明白x<y所起的作用,为啥选D?

老师,有x<y这个条件,为啥输出顺序是从大到小?不太明白x<y所起的作用,为啥选D?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
Sean_Guan 2018-06-23 22:52:49

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort

arr.sort(compareFunction)

如果没有指明 compareFunction ,那么元素会按照转换为的字符串的诸个字符的Unicode位点进行排序。例如 "Banana" 会被排列到 "cherry" 之前。当数字按由小到大排序时,9 出现在 80 之前,但因为(没有指明 compareFunction),比较的数字会先被转换为字符串,所以在Unicode顺序上 "80" 要比 "9" 要靠前。

如果指明了 compareFunction ,那么数组会按照调用该函数的返回值排序。即 a 和 b 是两个将要被比较的元素:

如果 compareFunction(a, b) 小于 0 ,那么 a 会被排列到 b 之前;

如果 compareFunction(a, b) 等于 0 , a 和 b 的相对位置不变。备注: ECMAScript 标准并不保证这一行为,而且也不是所有浏览器都会遵守(例如 Mozilla 在 2003 年之前的版本);

如果 compareFunction(a, b) 大于 0 , b 会被排列到 a 之前。

compareFunction(a, b) 必须总是对相同的输入返回相同的比较结果,否则排序的结果将是不确定的。


妮可妮可妮_ 2018-06-11 17:25:52

本题考察的是数组的sort()方法。sort()方法用于对数组的元素进行排序,sort里面可以接收一个比较函数作为参数,return x<y时是降序排序;return x>y时,升序排序,故答案是:[33,24,19,8,5,2,1,0]

  • 提问者 慕粉1470644788 #1
    x<y为啥是降序排序?不太懂
    2018-06-11 20:42:59
  • 妮可妮可妮_ 回复 提问者 慕粉1470644788 #2
    sort() 方法用于对数组的元素进行排序。如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。 如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 x 和 y,其返回值如下: 若 x 小于y,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。 若 x 等于 y,则返回 0。 若 x 大于 y,则返回一个大于 0 的值。
    2018-06-12 09:33:15
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
前端小白入门系列课程
  • 参与学习           人
  • 提交作业       11218    份
  • 解答问题       36713    个

从一个不会编程的小白到一个老司机是需要过程的,首先得入门,学习基础知识,然后才能进阶,最后再到精通,本专题是你走进前端世界的不二选择!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师