javascript - 如何正确排序整数数组

标签 javascript arrays sorting numbers

试图从一个我知道只包含整数的数组中获取最大值和最小值似乎比我想象的要难。

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

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

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

最佳答案

默认情况下,sort 方法按字母顺序对元素进行排序。要进行数字排序,只需添加一个处理数字排序的新方法(sortNumber,如下所示)-

var numArray = [140000, 104, 99];
numArray.sort(function(a, b) {
  return a - b;
});

console.log(numArray);

文档:

Mozilla Array.prototype.sort()建议对不包含 Infinity 或 NaN 的数组使用此比较函数。 (因为 Infinity - Infinity 是 NaN,而不是 0)。

还有按键排序对象的示例。

关于javascript - 如何正确排序整数数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1063007/

相关文章:

javascript - 是否可以通过 Google 自动完成 API 获取地点图像?

javascript - Azure Blob 图像上传 405(资源不支持指定的 Http 谓词)

arrays - golang append() 已评估但未使用

arrays - 如何在perl中打印排序数组中每个字符串前缀的最高元素?

javascript - 数字串不能以零开头。其他解决方案?

sorting - Hadoop 对值进行二次排序。对松散的值(value)观进行分类

c - 对结构体数组进行排序或对结构体列表 C 进行排序,哪个更快?

javascript - IE Javascript 样式显示不工作

javascript - 使用 YUI 拖放插件实现多个放置目标?

algorithm - 遍历值为整数列表的字典并重新排序