知道它是Id,从js数组中删除对象

use*_*862 29 javascript jquery

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

var myArr;
Run Code Online (Sandbox Code Playgroud)

在页面加载包含让我们说10个对象.

一个对象具有以下结构

 - Id  
 - Name
Run Code Online (Sandbox Code Playgroud)

我怎么能从js数组中删除对象,知道它是Id?

Ani*_*bhi 32

试试这样吧

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);
Run Code Online (Sandbox Code Playgroud)

JSFIDDLE


udi*_*idu 10

两个解决方案,一个是进化创建新实例,另一个是更改数组实例.

过滤:

idToRemove = DESIRED_ID;

myArr = myArr.filter(function(item) {
    return item.Id != idToRemove;
});
Run Code Online (Sandbox Code Playgroud)

如您所见,该filter方法返回已过滤数组的新实例.

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

idToRemove = DESIRED_ID;

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

myArr.splice(index, 1);
Run Code Online (Sandbox Code Playgroud)


Dav*_* F. 6

你能试一下吗

newArray = myArr
  .filter(function(element) {
    return element.id !== thisId;
  });
Run Code Online (Sandbox Code Playgroud)