首页  >  文章  >  web前端  >  如何根据属性与另一个对象数组的匹配来过滤对象数组?

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

Patricia Arquette
Patricia Arquette原创
2024-10-30 23:41:29990浏览

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

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

考虑以下对象数组:

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"
}]

目标是使用 myFilter 过滤 myArray,以便仅在 myArray 中具有匹配 userid 和 projectid 的对象myFilter 中对象的值包含在过滤后的数组中。

解决方案:

我们可以使用过滤器和一些数组方法来实现此过滤:

<code class="javascript">const myArrayFiltered = myArray.filter((el) => {
  return myFilter.some((f) => {
    return f.userid === el.userid &amp;&amp; f.projectid === el.projectid;
  });
});</code>

说明:

  • filter 方法迭代 myArray 中的每个元素。
  • 对于每个元素,使用 some 方法检查如果 myFilter 中存在一个元素,其中 userid 和 projectid 值都与当前元素匹配。
  • 如果在 myFilter 中的任何元素找到这样的匹配,则 myArray 中的当前元素将包含在 myArrayFiltered 数组中。
  • 否则排除在外。

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

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn