数组排序()

时间:2012-07-06 18:25:24

标签: javascript

这部分出自“学习PHP,MySql和Javascript by。罗宾尼克森”一书错误吗?

numbers = [7, 23, 6, 74];

numbers.sort(function(a,b){return a - b});

输出为6,7,23,74

这本书说:

  

如果sort()中的匿名函数返回大于零的值,则排序假定 a b 之前。

     

如果sort()中的匿名函数返回的值小于零,则排序假设 b 位于 a 之前。

     

sort对数组中的所有值运行此函数以确定它们的顺序。

这是错的吗?因为....

a这里是7
b这里是23

7 - 23 = -16 //小于零的数字。书说它应该在a之前出现。

所以最终输出应为74, 23, 7, 6

2 个答案:

答案 0 :(得分:5)

看来是错的。来自MDN

  

如果compareFunction(a,b)小于0,则将a排序为低于b的索引。

(在这种情况下,“较低的指数”意味着a来自b)

答案 1 :(得分:2)

输出正确,但解释不正确。如果该方法返回< 0,a来自b。