在javascript中通过数组删除对象

时间:2016-08-13 16:35:14

标签: javascript arrays node.js object

我想从数组中删除与数组id匹配的对象,就像这个

一样
var report = [{ id:1, title: "title 1"},{ id:2, title: "title 2"},{ id:3, title: "title 3"},{ id:4, title: "title 4"},{ id:5, title: "title 5"}];
var array = [1,2,3];

我只想删除数组中匹配的对象。我期望的结果就像

var report = [{ id:4, title: "title 4"},{ id:5, title: "title 5"}];

我在.splice.上使用了.forEach方法,但似乎并没有那么好用。

任何帮助将不胜感激:)

2 个答案:

答案 0 :(得分:0)

您可以使用filter()indexOf()



var report = [{ id:1, title: "title 1"},{ id:2, title: "title 2"},{ id:3, title: "title 3"},{ id:4, title: "title 4"},{ id:5, title: "title 5"}];
var array = [1,2,3];

var result = report.filter(function(e) {
  return array.indexOf(e.id) == -1;
})

console.log(result)




答案 1 :(得分:0)

var report = [{ id:1, title: "title 1"},{ id:2, title: "title 2"},{ id:3, title:"title 3"},{ id:4, title: "title 4"},{ id:5, title: "title 5"}];
var array = [1,2,3];

var newReport = report.filter(function(item){
  return array.indexOf(item.id) == -1;
})