2015-07-02 45 views
1

Javascript的排序()返回[19,20,2000,500]當適用於[20,19500,2000]。爲什麼它考慮要小於?Javascript的排序()不返回升序

var arr = [20,19,500,2000]; 
arr.sort(); 
arr; 
// [19, 20, 2000, 500] 
+0

我們需要的代碼..... – Isaiah

+3

「的默認排序順序是按照字符串的Unicode代碼點。」 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort –

回答

2

默認情況下,Javascript將array的元素視爲string。所以,在排序19,720,5時,它會得到的第一個字符並按順序排序。像19, 5, 720

var arr = [20,19,500,2000]; 
arr.sort(function(a, b) { 
    return a - b; 
}) 

More Details

More on Sorting

+0

不,它不看第一個字符。 –