首页 > 解决方案 > 如何从数组中删除匹配值以外的对象?

问题描述

我正在尝试根据不匹配的值从数组中删除对象。

这是我的项目数组:

var items = [
  {"id":"88","name":"Lets go testing"},
  {"id":"99","name":"Have fun boys and girls"},
  {"id":"108","name":"You are awesome!"}
];

var arr=["88","108"];

在这里,我可以根据匹配的值从数组中删除对象。但是我想保持匹配的值对象并且需要删除不匹配的对象。

这就是我从数组中删除匹配对象的方式。

for(let i in arr) {
  items = items.filter(function(item) {
    return item.id !== arr[i];
  });
}

标签: javascriptarrays

解决方案


用于indexOf确定发生情况。

var items = [
  {"id":"88","name":"Lets go testing"},
  {"id":"99","name":"Have fun boys and girls"},
  {"id":"108","name":"You are awesome!"}
];

var arr=["88","108"];

const filteredItems = items.filter(item => {
  if (arr.indexOf(item.id)>-1) {
    return item
    }
})

console.log(filteredItems)


推荐阅读