从JavaScript中的值获取键

假设我们有一个像这样的数组对象-

const obj = {
   'key1': ['value11', 'value12', 'value13', 'value14', 'value15'],
   'key2': ['value21', 'value22', 'value23', 'value24', 'value25',
   'value26', 'value27'],
   'key3': ['value31', 'value32', 'value33', 'value34'],
   'key4': ['value41', 'value42'],
};

我们需要编写一个JavaScript函数,该函数接受一个对象作为第一个参数,并将值字符串作为第二个参数。然后,该功能应检查输入值属于哪个键。

for 'value13', the key will be 'key1'
for 'value32', the key will be 'key3'

示例

为此的代码将是-

const obj = {
   'key1': ['value11', 'value12', 'value13', 'value14', 'value15'],
   'key2': ['value21', 'value22', 'value23', 'value24', 'value25',
   'value26', 'value27'],
   'key3': ['value31', 'value32', 'value33', 'value34'],
   'key4': ['value41', 'value42'],
};
const searchByValue = (obj, val) => {
   for (let key in obj) {
      if (obj[key].indexOf(val) !== -1) {
         return key;
      };
   };
   return null;
};
console.log(searchByValue(obj, 'value32'));

输出结果

控制台中的输出将是-

key3