知道它的ID,从js数组中删除对象

时间:2015-12-17 14:10:14

标签: javascript jquery

我在剃刀视图(javascript代码)中有对象数组。

var myArr;
页面加载

包含让我们说10个对象。

一个对象具有以下结构

 - Id  
 - Name

如何从js数组中删除对象并知道它的ID?

3 个答案:

答案 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);

DEMO

答案 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;
  });