繁体   English   中英

如何从 JSON 对象的值数组中检索键?

[英]How to retrieve the key from an array of values of a JSON object?

让有一个对象的值作为数组。 例如,

    const obj = {
      'abc': ['xyz','tuv'],
      'def': ['qrs']
    }

我们如何从对象中获取 'tuv' 的密钥?

这与this question不同,其中值不是数组。 如何通过值获取 JavaScript 对象中的键?

您可以通过检查值来获取键和过滤器。

 const getKeys = (object, value) => Object.keys(object).filter(k => object[k].includes(value)), obj = { abc: ['xyz','tuv'], def: ['qrs'] }; console.log(getKeys(obj, 'tuv'));

我假设一个值不会有多个键。

const getKeyByValue = (object, value) => Object.keys(object)
  .map(key => object[key].map(val => { if (val === value) { return key }}))
  .flat().filter(key => key)[0] || false

所以,如果我们想得到 'tuv' 的密钥,我们可以这样调用这个方法,

getKeyByValue(obj, 'tuv')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM