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

如何根据与另一个数组的匹配来过滤对象数组?

Barbara Streisand
发布: 2024-11-01 08:39:02
原创
488 人浏览过

How to Filter an Array of Objects Based on Matches with Another Array?

用另一个对象数组过滤一个对象数组

问题:

你想要根据与第二个对象数组的匹配来过滤对象数组。例如,给定以下数组:

<code class="js">myArray = [
  { userid: "100", projectid: "10", rowid: "0" },
  { userid: "101", projectid: "11", rowid: "1" },
  { userid: "102", projectid: "12", rowid: "2" },
  { userid: "103", projectid: "13", rowid: "3" },
  { userid: "101", projectid: "10", rowid: "4" },
];
myFilter = [
  { userid: "101", projectid: "11" },
  { userid: "102", projectid: "12" },
  { userid: "103", projectid: "11" },
];</code>
登录后复制

您需要过滤 myArray 以仅包含 userid 和 projectid 属性与 myFilter 中的属性匹配的对象。预期结果是:

<code class="js">myArrayFiltered = [
  { userid: "101", projectid: "11", rowid: "1" },
  { userid: "102", projectid: "12", rowid: "2" },
];</code>
登录后复制

解决方案:

要过滤数组,可以使用过滤器和一些数组方法:

<code class="js">const myArrayFiltered = myArray.filter((el) => {
  return myFilter.some((f) => {
    return f.userid === el.userid && f.projectid === el.projectid;
  });
});</code>
登录后复制

解释:

  • filter 方法迭代 myArray 并创建一个新数组,仅包含满足作为参数提供的条件的对象。
  • some 方法,在条件中使用,检查 myFilter 中的任何元素是否与 myArray 中当前元素的 userid 和 projectid 属性匹配。
  • 如果找到匹配,则 some 方法返回 true,表示当前元素应包含在过滤后的数组中。

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

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