在我正在閱讀的一個javaScript書中,它引入了一個方便的函數,它可以幫助排序方法以正確的順序輸出值(在數字的情況下)。這個函數如何與javaScript中的排序方法進行交互?
var values = [0,1,5,10,15];
values.sort();
console.log(values); //outputs 0,1,10,15,5
function compare (value1, value2){
if (value1 < value2){
return -1;
} else if (value1 > value2){
return 1;
} else {
return 0;
}
var values = [0,1,5,10,15];
values.sort(compare);
console.log(values); //outputs 0,1,5,10,15
我知道最終會發生什麼,但是我比較困惑,因爲'比較'功能是怎麼做到的!主要是因爲我不確定「比較」函數的返回值如何影響數組! 感謝朋友們!
它是'sort()'的定義方式。你爲什麼困惑? –
您正將'compare'傳遞給'sort',並在內部調用該函數。如果a大於b,則傳遞給sort的函數必須返回大於0的值;如果兩個值相等,則返回0;如果a小於b,則返回小於0。 –
** [.sort](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/sort)**可能會幫助你 –