SOURCE

// 找出数组中第K大和第m大的数字相加之和
// 说明:实现一个方法,找出数组中第k大的和第m大的数字相加之和
// 示例: let arr = [1,2,4,4,3,5],k=2 m=4
// findTopSum(arr, k, m) // 第二大的数是4, 出现2次,第4大的是2,出现1次,所以结果为10
let arr = [1,2,4,4,3,5],k=2, m=4
function findTopSum(arr, k, m) {
    let newarr = arr.slice(0);
    let set = new Set(newarr);
    let tparr = Array.from(set);
    tparr.sort((a,b)=>(a-b)); //排序,从小到大,方便找到第几大的数字
    // arr.sort((a,b)=>(a-b)); //数组也排序

    let len = tparr.length;
    console.log(len)

    let kMax = tparr[len-k]; //找出第k大的数

    let mMax = tparr[len-m]; //找出第m大的数
    console.log(kMax,mMax)

    let sum = 0; //总和初始化为0
    for(let i=0;i < arr.length;i++){
        if(arr[i] == kMax || arr[i] == mMax){
            sum += arr[i];
        }
    }
    return sum;
}
sum = findTopSum(arr, k, m)
console.log(sum)
console 命令行工具 X clear

                    
>
console