我有一个问题关于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