좋아, 난 ... 당신이 무엇을 의미하는지 것 같아
O (NlogN) 솔루션, _MAP에서 N 항목이있는 경우
var _map = {
'severity-normal': 0,
'severity-minimal': 0,
'severity-moderate': 0,
'severity-severe': 0,
'severity-highly-severe': 0
};
var list = [];
$.each(_map, function(key, value) {
list.push({key:key, value:value});
});
list.sort(function(a,b) { return b.value - a.value; });
for(var i=0; i<3 && i<list.length; i++) {
alert(i + ': ' + list[i].value);
}
O (K * N) 용액, g 등 상부 K 항목 및 N 항목
var _map = {
'severity-normal': 0,
'severity-minimal': 0,
'severity-moderate': 0,
'severity-severe': 0,
'severity-highly-severe': 0
};
function getTopElements(map, k) {
var lastMaximum = Infinity, currentMaximum;
var outputList = [];
while(outputList.length < k) {
currentMaximum = -Infinity;
for(key in map) {
if(map[key] > currentMaximum && map[key] < lastMaximum) {
currentMaximum = map[key];
}
}
for(key in map) {
if(map[key] == currentMaximum) {
outputList.push(map[key]);
}
if(outputList.length >= k) break;
}
lastMaximum = currentMaximum;
}
return outputList;
}
var list = getTopElements(map,3);
for(var i=0; i<list.length; i++) {
alert(i + ': ' + list[i].value);
}
은 "인덱스"무엇을 의미합니까 업데이트를 참조하십시오? 당신은 키와 값 모두를 잘 얻는 것처럼 보입니다. 또한 객체에는 배열과 같은 속성에 대한 순서가 없습니다. –
나는 상위 3 개의 키 값 쌍만 표시하려고하고 있으며 모두 표시하지는 않습니다. 나는 (var I = 0; i
Kurkula
가장 큰 값을 가진 것처럼 상위 3 개? 그리고 색인이 아닌 상위 3 개 항목의 각 키를 찾으려고하지 않아야합니까? (그들은 결국 색인이 없습니다) –