在javascript中传递值数组和过滤对象

我想知道如何通过在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

    }

  ]


莫回无
浏览 181回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript