在JavaScript中通过“值"动态获取“键" [英] Dynamically get 'Key' with 'Value' in javascript
本文介绍了在JavaScript中通过“值"动态获取“键"的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
例如
let obj = {
key1: ["A", "B", "C"],
key2: ["D", "E"],
key3: ["F"]
};
如果输入为"A",则应返回key1.针对不同的对象尝试使用以下代码.对于当前情况,还有更好的方法吗?`
If the Input is "A", it should return key1. Tried with the following code for different object. Any better way for current scenario? `
function findKey(value) {
var element = null;
Object.keys(obj).forEach(function(key) {
if (obj[key].value === value.toString()) {
element = key;
return;
}
});
return element;
}
`
推荐答案
let obj = {
key1: ["A", "B", "C"],
key2: ["D", "E"],
key3: ["F"]
};
function findKey(value) {
return Object.keys(obj).find(key => obj[key].includes(value));
}
console.log(findKey("A"));
另一个选择是将数据结构重组为 地图
以便快速访问:
Another option is to reorganize the data structure into a Map
for quicker access:
let obj = {
key1: ["A", "B", "C"],
key2: ["D", "E"],
key3: ["F"]
};
let map = new Map();
Object.keys(obj).forEach(key => {
obj[key].forEach(value => {
map.set(value, key);
});
});
console.log(map.get("A"));
这篇关于在JavaScript中通过“值"动态获取“键"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文