我在剃刀视图(javascript代码)中有对象数组。
var myArr;
页面加载包含让我们说10个对象。
一个对象具有以下结构
- Id
- Name
如何从js数组中删除对象并知道它的ID?
答案 0 :(得分:23)
试试这个
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);
答案 1 :(得分:6)
两个解决方案,一个是进化创建新实例,另一个是更改数组实例。
过滤器:
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);
答案 2 :(得分:3)
newArray = myArr
.filter(function(element) {
return element.id !== thisId;
});