获取Javascript中具有最高值的对象键

获取Javascript中具有最高值的对象键,javascript,arrays,associative-array,Javascript,Arrays,Associative Array,想象这样一个物体: var values = { "2": 1, "53": 2, "56": 4, "57": 9, "61": 2, "62": 16, "63": 2, "398": 24, ... } 我的目标是找到10个具有最高值的对象关键点。在这种情况下:398,然后是62,依此类推([398,62,…])。我知道如何将其放入数组,但不知道如何接收属性键 重要提示:我无法更改格式,因为这是服务器响应 我尝试了一

想象这样一个物体:

var values = {
    "2": 1,
    "53": 2,
    "56": 4,
    "57": 9,
    "61": 2,
    "62": 16,
    "63": 2,
    "398": 24,
    ...
}
我的目标是找到10个具有最高值的对象关键点。在这种情况下:398,然后是62,依此类推(
[398,62,…]
)。我知道如何将其放入数组,但不知道如何接收属性键

重要提示:我无法更改格式,因为这是服务器响应

我尝试了一个
for(key-in-values){}
循环,但不知道如何继续。
它的答案也不能真正帮助我。

您可以使用
Object.keys
来获取键值

var value = {
"2": 1,
"53": 2,
"56": 4,
"57": 9,
"61": 2,
"62": 16,
"63": 2,
"398": 24,
}
var parsedKeys = Object.keys(value).map(x => parseInt(x));
var sortedKeys = parsedKeys.sort(function (a, b) {  return b - a;  });
现在您可以通过
sortedKeys.slice(0,10)获得最高的前10个键

var值={
"2": 1,
"53": 2,
"56": 4,
"57": 9,
"61": 2,
"62": 16,
"63": 2,
"398": 24
};
var可排序=[];
for(var输入值){
可排序。推送([key,value[key]]);
}
sortable.sort(函数(a,b){
返回b[1]-a[1];
});
var结果=[];
可排序的forEach(函数(a){
结果:push(a[0]);
});

log(result.slice(0,10))您可以按values属性排序并对结果进行切片

var值={2:1,53:2,56:4,57:9,61:2,62:16,63:2398:24},
结果=对象
.键(值)
.sort(函数(a,b){返回值[b]-值[a];})
.切片(0,10)
.地图(编号);
控制台日志(结果)
.as控制台包装{最大高度:100%!重要;顶部:0;}
如前所述:

  • 创建键数组:
    Object.keys(Object)
  • 根据值对该数组排序:
    Sort((a,b)=>object[b]-object[a])
  • 获取必要的值:
    键。切片(0,n)
var value={2:1,53:2,56:4,57:9,61:2,62:16,63:2398:24};
具有最高值(o,n)的函数GetKeys{
var keys=Object.keys(o);
键。排序(功能(a、b){
返回o[b]-o[a];
})
控制台日志(键);
返回键。切片(0,n);
}

log(getKeysWithHighestValue(value,4))
创建键数组,然后根据值降序排序,得到前10个如果我有一个带count的单词数组怎么办?例如:-
[{“text”:“hello”,“size”:10},{“text”:“world”,“size”:2},…]
与100对象相同,找到前10个文本并将其存储在数组中?请参见给出的示例