当前位置: 首页 > 面试题库 >

如何正确排序整数数组

晋骏喆
2023-03-14
问题内容

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

var numArray = [140000, 104, 99];

numArray = numArray.sort();

alert(numArray)

我希望这能显示出来99, 104, 140000。相反,它显示104, 140000, 99。因此,似乎排序是将值作为字符串处理。

有没有一种方法可以使sort函数对整数值进行实际排序?


问题答案:

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

function sortNumber(a, b) {

  return a - b;

}



var numArray = [140000, 104, 99];

numArray.sort(sortNumber);



console.log(numArray);

在ES6中,可以使用箭头功能简化此操作:

numArray.sort((a, b) => a - b); // For ascending sort
numArray.sort((a, b) => b - a); // For descending sort

说明文件:

Array.prototype.sort()对于不包含Infinity或NaN的阵列,Mozilla
建议使用此比较功能。(因为Inf - Inf是NaN,而不是0)。

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



 类似资料:
  • 问题内容: 我有一个包含数字的字符串列表,但找不到找到对它们进行排序的好方法。 例如,我得到这样的东西: 用的方法。 我知道我可能需要以某种方式提取数字,然后对列表进行排序,但是我不知道如何以最简单的方式进行操作。 问题答案: 也许您正在寻找人工排序(也称为自然排序): 产量 PS。我已经更改了答案,以使用Toothy的自然排序实现(在此处发表评论),因为它比我的原始答案快得多。 如果您希望使用浮

  • 问题内容: 我想按下面显示的顺序对它们进行排序(数字1-12): 但是,我的查询-使用按其他所有字母开头的数字排序: 有什么技巧可以使其更正确地排序吗? 此外,为了充分公开,这可以是字母和数字的混合(尽管现在不是),例如: 等等.... 谢谢! 更新:人们要求查询 问题答案: 人们使用不同的技巧来做到这一点。我搜索了一下,发现每个结果都遵循不同的技巧。看看他们: MySQL中的字母数字排序 MyS

  • 我有一个日期,显示两个人之间的数字联系。其中一些人没有任何联系,所以有些单元格可能有一个字符串“x”作为值。 我得到的问题是排序。如果我按列排序,数字只按第一位数字排序,而不按点前面的部分排序。 我将点设置为十进制分隔符,如下所示: 下面是从控制台输出中获取的数据的摘录: 再次显示一个屏幕截图,解释错误的排序: 这里表格是按列leonard排序的,你可以看到这是按第一位数字排序的。但它应该是:94

  • 我想学习java中的比较器,我在网上找到了这个很好的例子,我的问题是如何更改这个代码,使宠物的名字按年龄和降序排列,以便最大的是第一个,最小的是最后一个?

  • 问题内容: 我不知道是否为此问题选择了合适的标题(如果没有,请相应地更改它),但是请考虑以下我正在使用的简化表结构: ,,,,,都是不相关的整数/浮筒,它们都代表不同的因素,并可以具有数量级的非常不同的顺序( 范围可从1 - 10,而的范围可以从100 - 1000 )。 我正在尝试选择条件相似的日期。给定一组,,,,,值我需要 返回由下令所有结果 接近 所有值作为一个整体 ,例如,如果,,,,和