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

2
  • I have this object: it's an array. Commented Sep 11, 2021 at 14:58
  • 2
    typeof [] === 'object' technically Commented Sep 11, 2021 at 15:23

1 Answer 1

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);

Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.