2016-11-03 56 views
-3

我不明白數組元素傳遞給函數的順序。 我知道它需要兩個參數a和b,如果第一次比較3和20,下次比較什麼?不理解JavaScript排序功能?

console.log(["a", "b", "c"].sort()); 
    console.log([3, 20,10000].sort(function(a,b){ 
    if (a < b) { 
     return -1; 

    } else if (a ==b) { 
     return 0; 

    } else { 
     return 1; 
    } 

    })); 
    }()); 
+0

[Here you go](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort)。 – Marty

回答

1

排序過程從數組中傳遞比較器函數(您使用兩個參數傳入的函數)對值。你不知道,你也不必知道他們是哪個價值觀;你所有的功能必須做的是返回一致的比較結果。您的函數可能會多次獲取相同的值對,並且可能會以不同的順序獲取它們。

現代JavaScript運行時的排序是可能是快速排序的實現,但沒有指定確切的細節;它所要做的就是成功對數組進行排序。

+0

謝謝,我喜歡學習新東西,但人們很快就會投下一個問題。它就像在這裏的每個人都是程序員。 – lovetolearn