【发布时间】:2017-05-13 19:36:15
【问题描述】:
假设我有一个名为“groups”的object,其中有值是数组的键:
let groups = {
group1: ['A', 'B', 'C'],
group2: ['X', 'Y', 'Z']
};
let item = 'B';
我将如何发现item 实际上在group1 中? (注意:会有很多组。我知道我可以使用 for 循环来遍历对象中的每个键。但是会有更快的方法吗?)
【问题讨论】:
-
所以你想创建一个排序函数来返回具有包含所需项目的值的键?您可以获取所有密钥并对其进行过滤:
Object.keys(groups).filter(key => groups[key].includes(item));. -
如果可以接受设置值而不是数组,这将大大加快搜索时间。我想说如果没有某种预排序,您至少需要遍历每个组。
-
这两个我试试,谢谢。
-
如果您坚持使用这种数据结构,那么是的,您需要迭代组对象中的每个键。如果您可以将数据结构更改为 hashmap(也称为字典),那么您可以快速查找该项目属于哪个组
-
@NinaScholz 是的,所有值都是唯一的
标签: javascript node.js object