需求如下 js頁面遍歷map集取出集合中最大的三個值 有重復的值 代碼該怎么寫 求大神指點
uj5u.com熱心網友回復:
//試試看吧,手敲的,沒有測驗,應該是正確的
function getMax(list, num){
var result = [];
list.sort().reverse().foreach((p)=>{
if(result.lenth < num){
if(result.indexOf(p) != -1){
result.push(p);
}
}
})
return result;
}
uj5u.com熱心網友回復:
上面習慣性的敲錯了一個地方。。。。修正如下
//試試看吧,手敲的,沒有測驗,應該是正確的
function getMax(list, num){
var result = [];
list.sort().reverse().foreach((p)=>{
if(result.lenth < num){
if(result.indexOf(p) == -1){
result.push(p);
}
}
})
return result;
}
uj5u.com熱心網友回復:

//好吧,上面還是錯了,下面這個是經過測驗的
function getMax(list, num){
var result = [];
var arr = list.sort().reverse();
for(var i = 0; i < arr.length; i++){
if(result.length < num){
if(result.indexOf(arr[i]) == -1){
result.push(arr[i]);
}
}
}
return result;
}
uj5u.com熱心網友回復:
var map = new Map();
map.set("A", 86);
map.set("B", 112);
map.set("C", 6);
map.set("D", 99);
map.set("E", 44);
map.set("F", 135);
var arr = [...map.values()].sort((a,b)=>b-a).slice(0,3);
console.log(arr);
uj5u.com熱心網友回復:
需要去重的話用Set物件過一下var arr = [...new Set(map.values())].sort((a,b)=>b-a).slice(0,3);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/118339.html
標籤:JavaScript
