【问题标题】:What is the best way to delete objects from Array从数组中删除对象的最佳方法是什么
【发布时间】:2021-11-14 20:31:51
【问题描述】:

我想知道在数组中查找对象的所有索引然后从数组中删除它们的最佳方法是什么。 目前,我的代码如下所示;

  var data = _.find(group.value, function(valueItem){ return valueItem.value == filter.value });
  var index =_.indexOf(group.value,data);
  group.value.splice(index,1);

这很好用,但如果索引不止一次,我只会得到第一个索引。所以,我正在寻找一种方法来获取数组中的所有索引,这样我就可以在 remove all 中循环遍历

【问题讨论】:

标签: javascript node.js lodash


【解决方案1】:

使用filter 创建一个新的对象数组。

根据您的示例,此代码根据每个 value 属性的值(名称)创建新数组。我已将 filter 代码封装在一个函数 (getData) 中,您可以使用原始数组和要检查的名称作为参数调用该函数。

如果没有匹配,该函数将返回一个空数组。

const arr = [
  { id: 1, value: 'bob' },
  { id: 2, value: 'dave' },
  { id: 3, value: 'bob' },
  { id: 4, value: 'bob' }
];

function getData(arr, name) {
  return arr.filter(obj => obj.value === name);
}

console.log(getData(arr, 'bob'));
console.log(getData(arr, 'dave'));
console.log(getData(arr, 'mary'));

【讨论】:

  • 我几乎总是会这样做,但我要指出,如果您必须仅对原始数组进行操作,则由于引用过时,这将不起作用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-10
  • 2016-10-24
  • 2010-09-15
  • 2012-12-29
  • 2010-12-17
  • 2011-04-09
相关资源
最近更新 更多