我有一个带组的对象(例如)。每个组对象包含一个 header
id 和多个 trigger
身份证件。
我想获得所有组的所有触发器的数组,没有重复。
一个例子是这样的:
const groups = {
group1: { header: 9, trigger: [10,11] },
group2: { header: 15, trigger: [11, 17] }
}
目前,我是这样做的:const triggers = Array.from(groups, x => x.trigger);
这给了我以下结果:[[10,11],[11,17]]
我的计划是得到这样的东西:[10,11,17]
.不必对它们进行排序,但必须删除重复项(在本例中为 11
)。有什么快速的方法吗?否则我现在会遍历这个数组,然后连接到一个新数组,但我认为有一个更快更好的解决方案。
最佳答案
这是一个单行使用 Set和 .flatMap()
方法
const groups = {
group1: { header: 9, trigger: [10,11] },
group2: { header: 15, trigger: [11, 17] }
}
const triggers = [...new Set(Object.values(groups).flatMap(x=>x.trigger))]
console.log(triggers)
关于javascript - 如何从对象元素中获取没有重复的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62580075/