提取对象中的名称键

时间:2018-10-13 12:27:17

标签: javascript object

这是我的var DL = 10 LL = 05

var service_load_combo = {
    "SL1": {
        "results": DL
    },
    "SL2": {
        "results": DL + LL,
    }
  };

因此,结果SL1.results = 10和SL2.results =15。因为SL2.results是2的最大值。我如何获得对象名称答案“ SL2”。我正在尝试Object.key(),但是很难。希望你能帮助我。

3 个答案:

答案 0 :(得分:1)

这是一个简单的max算法,该算法也会返回相应的密钥。这将适用于任意数量的wxTE_PROCESS_ENTER条目。

SL

如果您只有2个密钥,并且只关心它们的密钥名称,那么:

var maxValue = Number.MIN_VALUE;
var maxKey = null;
Object.keys(service_load_combo).forEach(k => {
    var currentValue = service_load_combo[k].results;
    if (currentValue > maxValue) {
        maxValue = currentValue;
        maxKey = k;
    }
});
console.log(`Max: Key: ${maxKey} Value: ${maxValue}`);

答案 1 :(得分:0)

您可以使用此:

var keyNames = Object.keys(myObject);
if ( keyNames.indexOf( "SL2" ) !== -1 ) { }

答案 2 :(得分:0)

您可以使用for...in

let DL = 10, LL = 5;
let service_load_combo = { "SL1": {"results": DL},"SL2": {"results": DL + LL}};
 
// Setting max as 0, assuming no negative values, else can set to Number.MIN_VALUE
let max = 0, maxKey;
for (let key in service_load_combo) {
  // If the value is greater than max value, update max and maxKey
  if(service_load_combo[key].results > max) {
    max = service_load_combo[key].results ;
    maxKey =  key;
  } 
}
console.log(maxKey);