用另一个对象数组过滤对象数组 [英] Filter array of objects with another array of objects
问题描述
这个问题类似于这个 Jquery过滤器数组的对象与循环但是这次我需要用一个对象数组来做过滤器。 例子: 我有一个像这样的对象的数组: 并返回(myFilter中的userid和projectid需要匹配userid和projectid myArray): 我该怎么做? 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: I want to filter it with an array like this: and return this (the userid and the projectid in myFilter need to match the userid and the projectid in myArray): How can I do that ?
这篇关于用另一个对象数组过滤对象数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
$ $ 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
} ]
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);
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"
}]
myArrayFiltered = [
{
userid: "101",
projectid: "11",
rowid: "1"
},
{
userid: "102",
projectid: "12",
rowid: "2"
}]
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);