根据其id从数组中删除对象

44 浏览
0 Comments

根据其id从数组中删除对象

这个问题已经有答案了

如何在JavaScript中从数组中删除特定的项?

我有一个对象数组:

var myArr;

假设在页面加载时,它包含10个具有以下结构的对象:

{
  Id: …,
  Name: …
}

如何通过其IdmyArr中删除一个对象?

admin 更改状态以发布 2023年5月21日
0
0 Comments

有两种解决方案,一种是创建新实例,一种是更改您的数组实例。

过滤器:

idToRemove = DESIRED_ID;
myArr = myArr.filter(function(item) {
    return item.Id != idToRemove;
});

正如您所看到的,filter方法返回过滤后数组的新实例。

第二个选项是找到该项的索引,然后使用splice将其删除:

idToRemove = DESIRED_ID;
index = myArr.map(function(item) {
    return item.Id
}).indexOf(idToRemove);
myArr.splice(index, 1);

0
0 Comments

试试这样做

var id = 2;
var list = [{
  Id: 1,
  Name: 'a'
}, {
  Id: 2,
  Name: 'b'
}, {
  Id: 3,
  Name: 'c'
}];
var index = list.map(x => {
  return x.Id;
}).indexOf(id);
list.splice(index, 1);
console.log(list);

JSFIDDLE

或者你可以利用.filter()

像这样

var id = 2;
var list = [{
  Id: 1,
  Name: 'a'
}, {
  Id: 2,
  Name: 'b'
}, {
  Id: 3,
  Name: 'c'
}];
var lists = list.filter(x => {
  return x.Id != id;
})
console.log(lists);

DEMO

0