根据其id从数组中删除对象
根据其id从数组中删除对象
这个问题已经有答案了:
我有一个对象数组:
var myArr;
假设在页面加载时,它包含10个具有以下结构的对象:
{ Id: …, Name: … }
如何通过其Id
从myArr
中删除一个对象?
admin 更改状态以发布 2023年5月21日
有两种解决方案,一种是创建新实例,一种是更改您的数组实例。
过滤器:
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);
试试这样做
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);
或者你可以利用.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);