我有些困难来过滤嵌套数组数据集。例如,我有以下数据数组列表:
let list = [
{
"percentage": 50.0,
"budget": "online",
"ruleName": "C1"
},
{
"percentage": 50.0,
"budget": "offline",
"ruleName": "C1"
},
{
"percentage": 50.0,
"budget": "other",
"ruleName": "C4"
}
现在我想使用 .map 或 .filter 来实现以下结果,并考虑如果 父数组 和 子组数组 的 budget 属性匹配,则应仅返回匹配的 对象,而不是所有对象。
[
{
"budget": "online",
"ruleName": "C1",
"group": [
{
"budget": "onlne",
"percentage": 50.0
}
]
},
{
"budget": "offline",
"ruleName": "C1",
"group": [
{
"budget": "offline",
"percentage": 50.0
}
]
},
{
"budget": "other",
"ruleName": "C4",
"group": [
{
"budget": "other",
"percentage": 0
}
]
}
我执行了以下操作,但结果与我上面期望的结果不符:
this.group = list.map((i)=>{
return {
budget: i.budget,
}
})
this.payments = list.map((i)=>{
return {
budget: i.budget,
amtPercentage: i.percentage ? i.percentage : 0,
rulename: i.rulename,
group: this.group
}
})
执行上述代码后,以下是结果:
[
{
"budget": "online",
"ruleName": "C1",
"group": [
{
"budget": "onlne",
"percentage": 50.0
},
{
"budget": "offline",
"percentage": 50.0
},
{
"budget": "other",
"percentage": 0
}
]
},
{
"budget": "offline",
"ruleName": "C1",
"group": [
{
"budget": "onlne",
"percentage": 50.0
},
{
"budget": "offline",
"percentage": 50.0
},
{
"budget": "other",
"percentage": 0
}
]
},
{
"budget": "other",
"ruleName": "C4",
"group": [
{
"budget": "onlne",
"percentage": 50.0
},
{
"budget": "offline",
"percentage": 50.0
},
{
"budget": "other",
"percentage": 0
}
]
}
我不知道如何根据以下条件过滤嵌套的分组数组:如果父级数组的budget属性等于group.budget属性,则只返回该对象而不是所有对象。
非常感谢您的帮助,提前致谢。
注意:我正在使用带有angular-2的typescript。
https://github.com/kutyel/linq.ts
,使用它可以实现您的目标。 - federico scamuzzi