嘿我一直试图从数组中返回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());