【发布时间】:2014-02-08 21:56:07
【问题描述】:
我了解 .sort() 方法按字母顺序对数组进行排序,就好像它是一个字符串一样。即使您的数组完全由数字组成。
我也明白要对数组进行数字排序,代码是:
myArray.sort(function (a,b) {
return a-b;
});
问题是我不明白为什么会这样。我写的函数应该有两个参数,'a'和'b',但是这些参数是从哪里来的呢?阵?它怎么知道这样做?然后,该函数返回一些数字。如果“a”和“b”分别为 10 和 5,我的函数将返回“5”。现在我在做 myArray.sort(5);这到底是如何神奇地对我的整个数组进行数字排序???
感谢您的帮助。
【问题讨论】:
-
您可以从规范中了解更多信息:es5.github.io/#x15.4.4.11 - 它通常会告诉您原因。或者至少是 MDN 文档:developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
-
您可以使用
console.log(a + " " + b);来检查传递给函数的值。然后打开控制台看看。例如。[5,8,3,4,1,9].sort(function(a,b){console.log(a+" "+b);return a-b;});
标签: javascript arrays sorting