我想在包含特定值时使用 Lodash 返回一个键

问题描述 投票:0回答:1

我有一个这样的对象:

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

javascript json object lodash
1个回答
0
投票

您可以使用 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'));

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.