用另一个对象数组过滤对象数组 [英] Filter array of objects with another array of objects

查看:223
本文介绍了用另一个对象数组过滤对象数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这个问题类似于这个 Jquery过滤器数组的对象与循环但是这次我需要用一个对象数组来做过滤器。

例子:

我有一个像这样的对象的数组:

$ $ p $ code 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中的userid和projectid需要匹配userid和projectid myArray):

  myArrayFiltered = [
{
userid:101,
projectid :11,
rowid:1
},
{
userid:102,
projectid:12,
rowid :2
}]

我该怎么做?

  var filtered = []; (myArray){
$(myArray){
for(var filter in myFilter){
if(myArray [arr] .userid == myFilter [filter] .userid& & myArray [arr] .projectid == myFilter [filter] .projectid){
filtered.push(myArray [arr] .userid);



console.log(filtered);


This question is similar to this one Jquery filter array of object with loop but this time I need to do the filter with an array of objects.

Exemple:

I have an array of objects like this:

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

I want to filter it with an array like this:

myFilter = [
{
    userid: "101", 
    projectid: "11"
},
{
    userid: "102", 
    projectid: "12"
},
{
    userid: "103", 
    projectid: "11"
}]

and return this (the userid and the projectid in myFilter need to match the userid and the projectid in myArray):

myArrayFiltered = [
{
    userid: "101", 
    projectid: "11",
    rowid: "1"
},
{
    userid: "102", 
    projectid: "12",
    rowid: "2"
}]

How can I do that ?

解决方案

var filtered = [];

for(var arr in myArray){
   for(var filter in myFilter){
       if(myArray[arr].userid == myFilter[filter].userid && myArray[arr].projectid == myFilter[filter].projectid){
          filtered.push(myArray[arr].userid);
         }
   }
}
console.log(filtered);

这篇关于用另一个对象数组过滤对象数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆