如何从js中的数组中获取最小的两个数字?

时间:2017-04-06 14:35:30

标签: javascript arrow-functions

嘿我一直试图从数组中返回2个最小的数字,无论索引如何。你能帮帮我吗?

2 个答案:

答案 0 :(得分:2)

  • 按升序对数组进行排序。
  • 使用Array#slice获取前两个元素(最小的元素)。

var arr = [5, 4, 7, 2, 10, 1],
    res = arr.sort((a,b) => a - b).slice(0, 2);
    console.log(res);

答案 1 :(得分:1)

虽然接受的答案是正确且正确的,但原始数组已排序,这可能是不希望的

var arr = [5, 4, 7, 2, 10, 1],
    res = arr.sort((a,b) => a - b).slice(0, 2);
console.log(arr.join()); // note it has mutated to 1,2,4,5,7,10
console.log(res.join());

您可以通过slice设置原始数组并对该新副本进行排序来避免这种情况

我还按降序添加了两个最低值的代码,因为这可能也很有用

const array = [1, 10, 2, 7, 5,3, 4];
const ascending = array.slice().sort((a, b) => a - b).slice(0, 2);
const descending = array.slice().sort((a, b) => b - a).slice(-2);

console.log(array.join()); // to show it isn't changed
console.log(ascending.join());
console.log(descending.join());