This question already has answers here:
How to sort an array of integers correctly

(29个答案)


5年前关闭。




下面是代码:
<script type="text/javascript">

function sortNumber(a,b) {
  return a - b;
}

var n = ["10", "5", "40", "25", "100", "1"];
document.write(n.sort(sortNumber));

</script>
sortNumber函数用于对数字进行排序吗? a和b是什么意思,为什么存在?为什么sortNumber中的n.sort(sortNumber)没有指定ab的任何参数?

最佳答案

JavaScript sort()函数可以或可以不使用参数。
该参数将是一个函数,即what function is to be used to assess which of two elements should be before the other

n数组由表示数字的字符串组成。
在不使用函数的情况下执行简单的sort(),将使用字母顺序:结果将是

 "1", "10", "25"... "5"

而且是不正确的。

提供一个函数sortNumber,每次sort算法想要知道两个项中的哪一个在另一个之前时,告诉sort用数组的两个元素调用该函数。

因此,提供两个项目的sortNumber执行numerical操作以返回其中一个
  • 为负值,表示a在b之前
  • 为正值,b在
  • 之前
  • 零:就顺序而言,它们是相等的(顺序无关紧要)。
  • 09-30 16:07
    查看更多