bblade
2016-04-18 23:34
1、若返回值<=-1,则表示 A 在排序后的序列中出现在 B 之前。/
2、 若返回值>-1 && <1,则表示 A 和 B 具有相同的排序顺序。
3、若返回值>=1,则表示 A 在排序后的序列中出现在 B 之后。
返回值不是跟0比较吗?为什么和1比较?特别是第二点,有点看不懂,大神解释下?
我也是在W3school上找到的,看了这么多提问的回答,都是说的同样的答案,我还以为是什么规定。很明显,按照慕课的说法,0.2和0.3是一样的,这样的问题就没人发现。。。。。
这是W3school 中的说明,很明显 才是对的。希望管理员能看到 ,改下吧!
若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。
若 a 等于 b,则返回 0。
若 a 大于 b,则返回一个大于 0 的值。
我的个人理解是这样的,假设我们要给1,2,3,4,5这几个数字排序,那么我们就可以这样来做。
首选,用第一个数也就是1依次减去后面的数字,得-1,-2,-3,-4,所以,这些情况满足第一条,所以, 1在排序后的序列中出现在 2.3.4.5 之前。
然后,继续从第二位开始,2-1等于一,所以2出现在1之后,其次2-3=-1,2-4=-2,2-5=-3,满足第一条,因此,都在2之后排列。
所以,这个sort方法实质上就是传入两个参数进行比较,然后通过加减判断谁大谁小进行排序优先级的划分,至于第二条的具有相同的排列顺序我也没弄清楚。
再仔细理解一下吧。
JavaScript进阶篇
468061 学习 · 21891 问题
相似问题