升序数排序 - 排序()

时间:2012-01-21 09:11:48

标签: javascript

n.sort(sortNo)的调用未指定函数sortNo的任何参数(其定义ab的参数)。任何人都可以解释原因吗?

<script type="text/javascript">
 function sortNo(a,b)
 {
    return a - b;
 }
 var n = ["10", "5", "40", "25", "100", "1"];
 document.write(n.sort(sortNo));
</script>

return a - b;是否使用了公式?

我知道sortNo提供了两个项目。数值运算是否会返回以下内容?

    如果ab之前,则
  • 为负值 如果ba之前
  • ,则
  • 为正值
  • 零:如果ab相等

2 个答案:

答案 0 :(得分:4)

这是因为Array.sort方法需要一个函数指针作为参数。然后它将遍历数组并调用此函数。您也可以使用匿名函数:

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

答案 1 :(得分:1)

a和b都是字符串。所以a-b毫无意义。

使用

     function sortNumber(a,b)
     {
        if (a < b)
           return 1;
       else if(a>b)
           return -1;
       return 0;
     }