js 从数组中获取最大的n个值

354 阅读1分钟

先将数组元素进行降序排序,再从排序后的数组中截取前n个元素,即为该数组中最大的n个元素。

const arr = [34121052220183052];
const pickGreatest = (arr, num) => {
   if(num > arr.length){
      return [];
   };
   const descendingCopy = arr.slice().sort((a,b)=>{return b-a));
   //使用slice()使生成一个和原数组完全相同的新数组,在新数组上进行排序,不会改变原数组
   return descendingCopy.splice(0, num);
   //splice()方法,从第0个元素的位置开始,删除num个元素,并返回删除的元素。
   //若在上一步中arr数组不使用slice()方法在新数组上进行排序操作,则这一步splice则会直接在排好序的原数组上进行删除操作,会改变原数组。
};
console.log(pickGreatest(arr, 3));
console.log(pickGreatest(arr, 4));
console.log(pickGreatest(arr, 5));

sort

slice