【发布时间】:2019-02-17 23:00:39
【问题描述】:
我有三个数组。
1. 现有的viewers数组——existingViewers
新观众数组 -
newViewersPermitted Viewers 数组 -
permittedViewers
permittedViewers 用于渲染下拉菜单。我希望从permittedViewers 中过滤newViewers 和existingViewers 条目。
我分三个步骤来做这件事。而且恐怕这不是优化的方式。有人可以建议这样做的理想方式吗? 预期结果是
[
{
"id": 4,
"name": "name4"
},
{
"id": 5,
"name": "name5"
},
{
"id": 6,
"name": "name6"
}
]
let existingViewers = [{
"viewerId": 1,
"name": "name1"
},
{
"viewerId": 2,
"name": "name2"
}
],
newViewers = [
{
"viewerId": 3,
"name": "name3"
}
],
permittedViewers = [{
"id": 1,
"name": "name1"
},
{
"id": 2,
"name": "name2"
},
{
"id": 3,
"name": "name3"
},
{
"id": 4,
"name": "name4"
},
{
"id": 5,
"name": "name5"
},
{
"id": 6,
"name": "name6"
}
]
let grouped = [...existingViewers, ...newViewers]
let viewerFilter = grouped.map(viewer => { return viewer.viewerId; });
let filteredPermittedViewers = permittedViewers.filter(viewer => !viewerFilter.includes(viewer.id));
console.log(filteredPermittedViewers)
【问题讨论】:
-
它看起来像一个 codereview 问题,因为代码正在运行。
-
我投票结束这个问题,因为它应该在 Code Review SE 网站上。
标签: javascript arrays drop-down-menu filter duplicates