[OK]を、私は...私はあなたが何を意味するかだと思います
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;私は
Kurkula
トップ3は、最高値を持つもののように?インデックスではなく、トップ3の各項目のキーを見つけようとしてはいけませんか? (彼らは結局インデックスを持っていません) –