我無法理解爲什麼以下函數將數字排序爲字符串(在代碼的第三部分中)。瞭解Javascript.sort參數
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
)
的可能重複[真正發生在Javascript排序(http://stackoverflow.com/questions/8588921/what-really-happens-in-javascript-sort) – 2013-02-17 23:11:19