javascript - 如何从 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
解决方案
您可以先获取密钥,然后再根据arr[a]
过滤器获取密钥key
value
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))
推荐阅读
- pandas - pandas - 使用字典映射数据框元素 - 如何访问值列表的第 n 个元素
- go - 无法在多重赋值中将字符串赋值给 __type__(类型 __type__ )
- regex - 捕获每组的所有文本
- python - 如何准备数据并进行自编码器的训练?
- php - 数组中的表单在 if 语句后不显示按钮
- google-chrome-extension - 切换到 v3 后从 Chrome 扩展程序进行 Google 身份验证
- linux - Apache将所有路径映射到根目录而不重定向
- firebase - GCP 上的身份验证服务,在欧洲提供数据存储选项
- machine-learning - 树与回归算法 - 哪个更适合具有主要分类特征的模型?
- node.js - 如何在给定一组值参数的情况下触发并发 lambda 执行?