首页 > web前端 > js教程 > 如何根据另一个数组中的 ID 过滤对象数组?

如何根据另一个数组中的 ID 过滤对象数组?

Barbara Streisand
发布: 2024-12-10 20:04:11
原创
758 人浏览过

How to Filter an Array of Objects Based on IDs from Another Array?

定位数组中的特定对象

根据不同的数组过滤对象数组在各种情况下都很有用。考虑这样一个场景,我们有一个人员对象数组和一个包含特定标识符(例如 ID)的附加数组。

给定一个人员数组:

const people = [
  { id: "1", name: "abc", gender: "m", age: "15" },
  { id: "2", name: "a", gender: "m", age: "25" },
  { id: "3", name: "efg", gender: "f", age: "5" },
  { id: "4", name: "hjk", gender: "m", age: "35" },
  { id: "5", name: "ikly", gender: "m", age: "41" },
  { id: "6", name: "ert", gender: "f", age: "30" },
  { id: "7", name: "qwe", gender: "f", age: "31" },
  { id: "8", name: "bdd", gender: "m", age: "78" }
];
登录后复制

和一个所需的数组ID:

const id_filter = [1, 4, 5, 8];
登录后复制

使用过滤对象Array.filter

要根据提供的 ID 过滤人员数组,我们可以使用数组的 filter() 方法。此方法接受一个回调函数,该函数接收数组的每个元素并返回一个布尔值。为了满足我们的过滤需求,我们定义回调函数如下:

person => id_filter.includes(person.id)
登录后复制

此回调函数本质上检查当前人的 ID 是否存在于 id_filter 数组中。如果找到则返回true;否则,它返回 false。

利用此回调函数,我们现在可以过滤人员数组:

const filteredPeople = people.filter(person => id_filter.includes(person.id));
登录后复制

生成的filteredPeople 数组将仅包含原始数组中 ID 的对象匹配 id_filter 中的值。

以上是如何根据另一个数组中的 ID 过滤对象数组?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板