我有一个对象列表:
let data = [{... , user: "user 1"}, {... , user: "user 1"}, {... , user: "user 1"}, {... , user: "user 2"}, {... , user: "user 2"}]
我有另一个包含一些对象的列表,其中包含有关用户的信息以及它是否被选中
let filter = [{user: "user 1", selected: true}, {user: "user 2", selected: false}]
如何获取仅包含第一个列表中具有用户属性的对象的另一个数组,该用户属性在过滤器列表中的对象已选择属性设置为 true? 使用上述列表的结果示例为
let data = [{... , user: "user 1"}, {... , user: "user 1"}, {... , user: "user 1"}]
答案 0 :(得分:0)
您可以创建一个对象或一个 Map
,将每个 user
映射到其 selected
属性。然后使用地图对象 filter
数组:
const filterMap = new Map(filter.map(o => [o.user, o.selected]))
const output = data.filter(d => filterMap.get(d.user))