I have an array of objects.
let filterval = [ { 'tran_type': "cs+", 'date': 2/2/2022, 'amount' 10000 }, { 'tran_type': "cs-", 'date': 2/2/2022, 'amount' 10000 }, { 'tran_type':"cs+", 'date': 3/2/2022, 'amount' 20000 }, { 'tran_type': "opo", 'date': 2/2/2022, 'amount' 10000 },{ 'tran_type': "opi", 'date': 2/2/2022, 'amount' 10000 },{ 'tran_type': "cs+", 'date': 1/2/2022, 'amount' 70000 }, { 'tran_type': "opo", 'date': 1/2/2022, 'amount' 90000 } ] I need to omit the object if tran_type is cs+ and cs- have the same date and same amount. and if tran_type is opo and opi have the same date and same amount.
I tried my knowledge in javascript. but it does not work properly.
Object.keys(filterval).map( data, index =>{ if(data.tran_type == 'cs+'){ Object.keys(filterval).map( data1 =>{ if(data1.tran_type == 'cs-'){ if(data1.date == data.date){ if(data1.amount == data.amount){ data.splice(index, 1) } } } } } if(data.tran_type == 'opo'){ Object.keys(filterval).map( data1 =>{ if(data1.tran_type == 'opi'){ if(data1.date == data.date){ if(data1.amount == data.amount){ data.splice(index, 1) } } } } } }); console.log(filterval) Please help me to get the below output. Also, correct my mistake in my code. Solutions are welcome. Thanks in advance.
[ { 'tran_type':"cs+", 'date': 3/2/2022, 'amount' 20000 }, { 'tran_type': "cs+", 'date': 1/2/2022, 'amount' 70000 }, { 'tran_type': "opo", 'date': 1/2/2022, 'amount' 90000 } ]