可当做面试题

如何把数组按照元素的大小进行排序?

coding2live 2021-01-22 13:50:50 86

我想把一个数组按照从大到小的顺序排列,而且数组中的元素都是整数:

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

我希望排序后的结果是99, 104, 140000,但实际的结果是104, 140000, 99

所以看起来sort方法是把整数转为字符串之后进行排序的。

怎么样可以把整数数组按照其元素的大小进行排序呢?

以下答案仅供参考

默认情况下,sort方法按字母顺序对元素进行排序。

要按照数字大小排序,只需稍加改动即可:

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

console.log(numArray);

在ES6中,还可以用箭头函数来简化:

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