猿问

如何正确排序整数数组

如何正确排序整数数组

试图从我知道的数组中获得最高和最低值仅包含整数似乎比我想象的更难。


var numArray = [140000, 104, 99]; numArray = numArray.sort(); alert(numArray)

我希望这能表明99, 104, 140000。相反它显示104, 140000, 99。所以似乎排序是将值作为字符串处理。

有没有办法让sort函数实际对整数值进行排序?


白衣染霜花
浏览 1011回答 4
4回答

波斯汪

array.sort默认使用字典排序,对于数字排序,提供自己的函数。这是一个简单的例子:function compareNumbers(a, b){     return a - b;}numArray.sort(compareNumbers);另请注意,排序工作“就地”,不需要分配。

呼唤远方

这个答案等同于一些现有的答案,但ECMAScript 6 箭头函数提供了更紧凑的语法,允许我们在不牺牲可读性的情况下定义内联排序函数:numArray = numArray.sort((a, b) => a - b);今天大多数浏览器都支持它。
随时随地看视频慕课网APP
我要回答