首页 > 解决方案 > 如何从 java 脚本对象中获取值的键?

问题描述

下面是一个js对象的例子:

var arr =          
{
      "a1": { "0.25": 13, "0.5": 50},
      "a2": { "0.5": 50, "0.75": 113, "1": 202}
}

id = 'a1';
key = "0.25";

function myFunc(id, key) {
  return arr[id][key];
}

使用上面的函数我可以得到对应键的值。

我的问题是如何获得给定值的密钥?

例如,如果 id = 'a2' 且 value = 113,则函数应返回相应的键 0.75

标签: javascriptarraysmultidimensional-array

解决方案


您可以先获取密钥,然后再根据arr[a]过滤器获取密钥keyvalue

var arr ={"a1": { "0.25": 13, "0.5": 50},"a2": { "0.5": 50, "0.75": 113, "1": 202}}

let a = 'a1',val = 13;

let getKey = (a,val) =>  Object.keys(arr[a]).filter(e => arr[a][e] === val)

console.log(getKey(a,val))
console.log(getKey('a2',113))

如果您确定总是有一个具有匹配值的键,或者您只想要第一个匹配值键而不是可以使用find而不是过滤器

var arr ={"a1": { "0.25": 13, "0.5": 50},"a2": { "0.5": 50, "0.75": 113, "1": 202}}

let a = 'a1',val = 13;

let getKey = (a,val) =>  Object.keys(arr[a]).find(e => arr[a][e] === val)

console.log(getKey(a,val))
console.log(getKey('a2',113))


推荐阅读