【问题标题】:Delete object from an array if the key value match [duplicate]如果键值匹配,则从数组中删除对象[重复]
【发布时间】:2021-11-07 15:26:43
【问题描述】:

嗨,我有这个对象

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

我从一个复选框中得到一个值和 id,我正在尝试如果该值和 id 匹配,则删除匹配的数组

所以我正在寻找如果我发送的值和 id 是例如 $ 679.200146 obj 结果是这样的

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

我试过了,但是不行

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

它会删除它,但不会删除匹配的 value 和 id

任何帮助我都会感激不尽

【问题讨论】:

  • I have this object: 这是一个数组。
  • typeof [] === 'object' 技术上

标签: javascript


【解决方案1】:

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

【讨论】: