如何从对象元素中获取没有重复的数组

Rel*_*ess 3 javascript arrays object

我有一个带组的对象(例如)。每个组对象包含一个headerid 和多个triggerid。我想获得所有组的所有触发器的数组,没有重复。

一个例子是这样的:

const groups = {
  group1: { header: 9, trigger: [10,11] },
  group2: { header: 15, trigger: [11, 17] }
}
Run Code Online (Sandbox Code Playgroud)

目前,我是这样做的:

const triggers = Array.from(groups, x => x.trigger);
Run Code Online (Sandbox Code Playgroud)

这给了我以下结果: [[10,11],[11,17]]

我的计划是要得到的东西是这样的:[10,11,17]。不必对它们进行排序,但必须删除重复项(在本例中11)。有什么快速的方法吗?否则我现在会遍历这个数组,然后连接到一个新数组,但我认为有一个更快更好的解决方案。

pal*_*aѕн 8

这是使用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)
Run Code Online (Sandbox Code Playgroud)