我有一个这样的对象:
const obj = {
'MONEY-OUT': {
USD: ['a', 'b', 'c'],
EUR: ['d', 'e', 'f'],
},
'MONEY-IN': {
USD: ['g', 'h', 'i'],
EUR: ['j', 'k', 'l'],
},
};
...我想创建一个函数,如果该键在其数组中包含使用 Lodash 的字符,则返回键
MONEY-OUT
/ MONEY-IN
。
我在这个函数中有 2 个变量:currency、search_string
例如,此函数的变量值为“EUR”和“k”,因此我需要函数返回密钥MONEY-IN
您可以使用 Array.prototype.find() 查找与您的条件匹配的第一个对象条目(键/值)对,然后返回该条目的键
const obj = {
'MONEY-OUT': {
USD: ['a', 'b', 'c'],
EUR: ['d', 'e', 'f'],
},
'MONEY-IN': {
USD: ['g', 'h', 'i'],
EUR: ['j', 'k', 'l'],
},
};
const findKey = (currency, search_string) =>
Object.entries(obj)
.find(([, v]) => v[currency]?.includes(search_string))
?.shift();
console.log(findKey('EUR', 'k'));