### 题目:给定一个一维数组,如[1,2,4,4,3,5],找出数组中第k大的数字出现多少次。###例如:第2大的数是4,出现2次,最后输出 4,2
function getNum(arr, k){
// 数组排序->从大到小
arr.sort((a, b)=>{
return b-a;
});
let uniqarr = Array.from(new Set(arr)); // 数组去重
let tar = uniqarr[k-1]; // 找到目标元素
let index = arr.indexOf(tar); // 寻找下标
let tarnext = uniqarr[k]; // 找到下一个元素
let num; // 利用元素之间的索引来得出该数字的数量
if(k == uniqarr.length){
num = arr.length – index;
}else{
let indexnext = arr.indexOf(tarnext);
num = indexnext – index;
}
return ([tar, num]);
}
let arr = [1,2,4,4,3,5];
console.log(…getNum(arr, 2));
发表回复