我想知道如何通过在javascript中传递值数组来过滤对象
如何将值数组作为参数传递并使用javascript过滤对象。基于send和,receive使用idjavascript获取对象值。
对于idtrans,如果send(in)是bank并且receive(out)是bank,对于id基金,如果send(in)是credit和receive(out)是bankand对于idinsta,如果send(in)是debit并且receive(out)是bank,则得到结果obj
var send=['bank', 'credit', 'debit'];
var receive = ['bank', 'bank', 'bank'];
var id=['trans', 'fund', 'insta'];
var result = getSample(sample,send, receive, id);
I have tried but got stuck
function getSample(sample,sn, rcn, id){
const temp = sample.map(e => Object.entries(e).map(([k, val]) => val)).flat(3)
var selectval= temp.filter(x=>x.in==scn && x.out==rcn && x.id == id);
return selectval;
}
var sample =
[{
"btob": [{
"id": "trans",
"in": "bank",
"out": "bank",
"value": 10,
},{
"id": "fund",
"in": "bank",
"out": "bank",
"value": 10
},{
"id": "insta",
"in": "bank",
"out": "bank",
"value": 10
}],
"ctob": [{
"id": "trans",
"in": "credit",
"out": "bank",
"value": 20
},{
"id": "fund",
"in": "credit",
"out": "bank",
"value": 10
},{
"id": "insta",
"in": "bank",
"out": "bank",
"value": 10
}],
"dtob": [{
"id": "trans",
"in": "debit",
"out": "bank",
"value": 20
},{
"id": "fund",
"in": "debit",
"out": "bank",
"value": 10
},{
"id": "insta",
"in": "debit",
"out": "bank",
"value": 10
}]
}]
Expected Output:
result=[
{
"id": "trans",
"in": "bank",
"out": "bank",
"value": 10,
},
{
"id": "fund",
"in": "credit",
"out": "bank",
"value": 10
},
{
"id": "insta",
"in": "debit",
"out": "bank",
"value": 10
}
]
相关分类