我无法理解为什么以下函数对字符串进行数字排序(在代码的第三部分)。
var myArray = [10, 44, 32, 100, 0, 44, 3, 4];
console.log(myArray.toString()); // 10, 44, 32, 100, 0, 44, 3, 4 --> unsorted
myArray.sort();
console.log(myArray.toString()); // 0,10,100,3,32,4,44,44 --> sorted like strings
// this is what confuses me:
myArray.sort(function (a, b) {
return a - b;
});
console.log(myArray.toString()); // 0,3,4,10,32,44,44,100 --> sorted numerically
具体来说:
如何
a
获得b
人口?为什么减法
a - b
按数字顺序对数字进行排序?如果函数一次只检查 2 个数字,如何将所有数字按正确的顺序排序?(即
a
和b
)