簡體   English   中英

獲取對象中具有最高值的鍵:javascript

[英]Get keys with highest values in object: javascript

我必須在 javascript 對象中獲取具有值的最高鍵

var obj1 = {a: 1, b: 3, c: 2, d: 4};
var obj2 = {a: 1, b: 3, c: 2, d: 3};

我試過這些代碼 code1

var max = Object.keys(r).reduce(function(a, b){ return r[a] > r[b] ? a : b });

代碼2

var max = _.max(Object.keys(obj), function (o) {return obj[o];});

代碼3

var max = Math.max.apply(null,Object.keys(obj).map(function(x){ return obj[x] }));
console.log(Object.keys(obj).filter(function(x){ return obj[x] == max; })[0]);

每個代碼在 obj1 的情況下工作正常,返回 d,因為它的最大值為 4,但在 obj2 不返回值的情況下,根據我的要求它只返回一個鍵,但我需要所有具有最高值的鍵,如果 obj2 需要 b & d 因為它們都是最高值 4

謝謝 Dinesh

您可以使用 underscore.js 這樣做

var obj1 = {
  a: 2,
  b: 3,
  c: 2,
  d: 4
};
var obj2 = {
  a: 1,
  b: 3,
  c: 2,
  d: 3
};
//get the max
n = _.max(obj2, function(o) {
  return o;
})
//filter keys with max
j = _.filter(Object.keys(obj2), function(o) {
  return obj2[o] == n
})
//use map to get the key and value in an array
result = j.map(function(d){ return {key:d, value:obj2[d]}})
console.log(result)

工作代碼在這里

此處使用下划線鏈的另一種選擇

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM