Javascript 使用下划线在键值对象上循环

Javascript 使用下划线在键值对象上循环,javascript,ecmascript-6,underscore.js,Javascript,Ecmascript 6,Underscore.js,我有几个字符串数组,给定一个特定的输入键字符串,我试图返回相应的键 例如,如果输入值为“a1”,则应返回“aa”,因为“a1”是键“aa”的数组值的一部分 inputKey = 'a1'; dict = { 'aa': ['a1', 'a2'], 'bb' : ['b1', 'b4', 'b6'] ... }; / // _.contains()) 我在考虑在字典中的每个元素上循环,如果数组中存在值,则返回键 这是最好的方法吗?(查找值数组的对应键)换

我有几个字符串数组,给定一个特定的输入键字符串,我试图返回相应的键

例如,如果输入值为“a1”,则应返回“aa”,因为“a1”是键“aa”的数组值的一部分

 inputKey = 'a1';
 dict = {
    'aa': ['a1', 'a2'],
    'bb' : ['b1', 'b4', 'b6']
    ...
  };

  /
  // _.contains())
我在考虑在字典中的每个元素上循环,如果数组中存在值,则返回键


这是最好的方法吗?(查找值数组的对应键)换句话说(将某些特定值映射到另一个值)。

使用and应该足够简单:

let inputVal='a1';
设inputVal2='b1';
设inputVal3='c1';
让dict={
'aa':['a1','a2'],
‘bb’:[‘b1’、‘b4’、‘b6’]
};
让foundKey=Object.keys(dict).find(key=>dict[key].includes(inputVal));
让foundKey2=Object.keys(dict.find)(key=>dict[key].includes(inputVal2));
让foundKey3=Object.keys(dict.find)(key=>dict[key].includes(inputVal3));
console.log(foundKey);
控制台日志(foundKey2);

控制台日志(foundKey3)应该足够简单,包括:

let inputVal='a1';
设inputVal2='b1';
设inputVal3='c1';
让dict={
'aa':['a1','a2'],
‘bb’:[‘b1’、‘b4’、‘b6’]
};
让foundKey=Object.keys(dict).find(key=>dict[key].includes(inputVal));
让foundKey2=Object.keys(dict.find)(key=>dict[key].includes(inputVal2));
让foundKey3=Object.keys(dict.find)(key=>dict[key].includes(inputVal3));
console.log(foundKey);
控制台日志(foundKey2);

控制台日志(foundKey3)我知道您需要使用
下划线的方法

这是一种使用函数
find
和函数
some
的替代方法

let inputKey='a1',
dict={'aa':['a1','a2'],'bb':['b1','b4','b6']},
result=Object.keys(dict.find)(k=>dict[k].some(d=>d==inputKey));

控制台日志(结果)我知道您需要使用
下划线的方法

这是一种使用函数
find
和函数
some
的替代方法

let inputKey='a1',
dict={'aa':['a1','a2'],'bb':['b1','b4','b6']},
result=Object.keys(dict.find)(k=>dict[k].some(d=>d==inputKey));

控制台日志(结果)是否需要使用下划线?这只是一行普通的javascript。
Object.keys(dict).find(k=>dict[k].some(d=>d==inputKey))
vanilla js解决方案同样简单,但是如果你有下划线可用,如果你喜欢,你可以使用它的
.findKey
方法:
.findKey(dict,v=>v.includes(inputKey))
啊,谢谢,vanilla javascript选项非常有用,你需要使用下划线吗?这只是一行普通的javascript。
Object.keys(dict).find(k=>dict[k].some(d=>d==inputKey))
vanilla js解决方案同样简单,但是如果你有下划线可用,如果你喜欢,你可以使用它的
.findKey
方法:
.findKey(dict,v=>v.includes(inputKey))
啊,谢谢你,vanilla javascript选项非常受欢迎