我有一個問題關於JavaScript的sort()函數JavaScript數組排序函數不正確排序
var arr = [23,43,54,2,3,12];
arr.sort();
它的輸出爲[12, 2, 23, 3, 43, 54]
以及它應該是[2, 3, 12, 23, 43, 54]
?
我有一個問題關於JavaScript的sort()函數JavaScript數組排序函數不正確排序
var arr = [23,43,54,2,3,12];
arr.sort();
它的輸出爲[12, 2, 23, 3, 43, 54]
以及它應該是[2, 3, 12, 23, 43, 54]
?
這是因爲您正在使用默認排序算法對數字進行排序,這會將其轉換爲字符串並按字典順序進行排序。
而是通過一個函數來定義一個排序順序,通過它的返回值。
var arr = [23,43,54,2,3,12];
console.log(arr.sort((a, b) => a - b));
返回一個正數朝向列表的末尾移動a
。
這真的很有幫助。謝謝 !!! –
數的排序是基於Unicode的。 因此,您擁有的奧德是正確的。 有關詳細信息,請參閱鏈接。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort
https://stackoverflow.com/questions/1063007/how-to-sort-an-array-of-integers-correctly – aahhaa
的可能的複製[如何正確排序整數數組( https://stackoverflow.com/questions/1063007/how-to-sort-an-array-of-integers-correctly) – Brian
它排序時的第一個數字,因爲你的值代表字符串 – pokeybit