Javascript 按Id从数组中选择

Javascript 按Id从数组中选择,javascript,arrays,Javascript,Arrays,我有两个数组 一种是包含每个项目的数组: let allProjects = [{project_id: 1, name: "project 1"}, {project_id: 2, name: "project 2"}, {project_id: 3, name: "project 3"}, {project_id: 4, name: "project 4"}] 其中一个只包含项目ID let selectedP

我有两个数组

一种是包含每个项目的数组:

let allProjects = [{project_id: 1, name: "project 1"}, {project_id: 2, name: "project 2"}, {project_id: 3, name: "project 3"}, {project_id: 4, name: "project 4"}]
其中一个只包含项目ID

let selectedProjects = [{project_id: 1}, {project_id: 2}]

如何从allProjects数组中获取名称,并根据selectedProjects数组中提供的id返回包含名称和id的新数组?

您可以使用
过滤器
映射
包含
的组合:

console.log(allProjects
            .filter(project => selectedProjects
                               .map(p => p.project_id)
                               .includes(project.project_id)));
输出:

[
  { project_id: 1, name: 'project 1' },
  { project_id: 2, name: 'project 2' }
]

也许有一种方法可以避免
map
,但对我来说
map
集中了意图。

[
Array.prototype.filter()
+]
Array.prototype.map()
两个
for
循环也可以,所以。。。到目前为止,你是如何独自解决这个问题的?