0

Hi I have this object

obj = [
 {id: 145, value: '$ 1.024.100'}
 {id: 146, value: '$ 679.200'}
 {id: 147, value: '$ 679.200'}
]

From a checkbox I'm getting a value and id, I'm trying that if that value and id match remove the array that match

So I'm looking that if the value and id that I send is for example $ 679.200 and 146 the obj result is this

obj = [
 {id: 145, value: '$ 1.024.100'}
 {id: 147, value: '$ 679.200'}
]

I tried this but doesn't work

var index: number = obj.indexOf(ob.source.value, id);
obj.splice(index, 1);

It delete it but not the value and id that match

any help I will appreciate

Andy
  • 61,948
  • 13
  • 68
  • 95
Alexis
  • 51
  • 1
  • 8

1 Answers1

2

Using Array#findIndex:

const removeElemWithIdAndValue = (arr = [], targetId, targetValue) => {
  const index = arr.findIndex(({ id, value }) => id === targetId && value === targetValue);
  if(index >= 0) arr.splice(index, 1);
}

const arr = [ {id: 145, value: '$ 1.024.100'}, {id: 146, value: '$ 679.200'}, {id: 147, value: '$ 679.200'} ];
removeElemWithIdAndValue(arr, 1461, '$ 679.200');
console.log(arr);
Majed Badawi
  • 27,616
  • 4
  • 25
  • 48