Javascript 检查字符串是否属于对象中键的数组类型值

Javascript 检查字符串是否属于对象中键的数组类型值,javascript,node.js,object,Javascript,Node.js,Object,假设我有一个名为“组”的对象,其中有值为数组的键: let groups = { group1: ['A', 'B', 'C'], group2: ['X', 'Y', 'Z'] }; let item = 'B'; 我如何才能发现项实际上在group1中?(注意:将有很多组。我知道我可以使用for循环来迭代对象中的每个键。但是有没有更快的方法?您可以使用a来引用组中的键 let groups={group1:['A','B','C'],group2:['X','Y','Z'

假设我有一个名为“组”的
对象,其中有值为数组的键:

let groups = {
    group1: ['A', 'B', 'C'],
    group2: ['X', 'Y', 'Z']
};
let item = 'B';
我如何才能发现
项实际上在
group1
中?(注意:将有很多组。我知道我可以使用
for
循环来迭代对象中的每个键。但是有没有更快的方法?

您可以使用a来引用组中的键

let groups={group1:['A','B','C'],group2:['X','Y','Z']},
地图=新地图,
项目='B';
Object.keys(groups.forEach(k=>groups[k].forEach(v=>map.set(v,k));

console.log(map.get(item))
那么您想创建一个排序函数来返回包含所需项的值的键吗?您可以获取所有键并对其进行筛选:
Object.keys(groups.filter(key=>groups[key].includes(item))。如果可以使用值集而不是数组,则将大大加快搜索时间。我想说,如果没有某种预排序,您至少需要迭代每个组。我将尝试这两种方法,谢谢。如果您坚持使用这种数据结构,那么是的,您需要迭代组对象中的每个键。如果您可以将数据结构更改为hashmap(又称字典),则可以快速查找该项所属的组to@NinaScholz是的,所有值都是唯一的。最好使用您的第一个选择,循环的
,因为这一点都不好。除了在对象属性上循环外,没有其他方法。