Javascript 使用对象数组数据es6筛选数据

Javascript 使用对象数组数据es6筛选数据,javascript,ecmascript-6,filter,Javascript,Ecmascript 6,Filter,我试图用另一个对象数组过滤对象数组 var actualData = [{modifiedy: "USER", createdOn: "2021-03-18", id: 33 },{modifiedy: "USER", createdOn:"2021-03-18", id: 22},{modifiedy: "USER", createdOn: "2021-03-18", id:

我试图用另一个对象数组过滤对象数组

var actualData = [{modifiedy: "USER", createdOn: "2021-03-18", id: 33 },{modifiedy: "USER", createdOn:"2021-03-18", id: 22},{modifiedy: "USER", createdOn: "2021-03-18", id: 36},  {modifiedy: "USER", createdOn: "2021-03-18", id: 11 }] 

var selectedItems = [33,22]
我需要返回未包含在实际数据中的项目

我已经尝试使用下面的函数,但我得到未定义的“一些”错误

我已经搜索了很多以达到我的要求,但我没有任何解决方案可以有人帮我解决这个问题。

试试这个

 var filtered = actualData.filter(function (item) {
        return selectedItems.indexOf(item.id) === -1;
    });
    console.log('filtered', filtered);

如果我理解正确,您需要在selectedItems中查找不在实际数据中的项,对吗?所以如果你有

var selectedItems = [33,22,9];
在您的示例中提供的实际数据中,您的结果是

Array [ 9 ]
对吧??在这种情况下,您应该执行以下操作:

const filtered = selectedItems.filter(item => !actualData.find(data => data.id === item));
console.log(filtered);
使用
filter()
ES6

常量实际数据=[
{modifiedy:“用户”,createdOn:“2021-03-18”,id:33},
{modifiedy:“用户”,createdOn:“2021-03-18”,id:22},
{modifiedy:“用户”,createdOn:“2021-03-18”,id:36},
{modifiedy:“用户”,createdOn:“2021-03-18”,id:11},
];
const selectedItems=[33,22];
const notIncludedData=actualData.filter((a,i)=>selectedItems.indexOf(a.id)!==i);

console.log(不包括数据)请发布数据的有效代码表示形式。从dev工具控制台复制的内容不是运行代码的可用结构。而且
p.checkItems
checkedItems
似乎都没有定义。见@charlietfl我已经更新了我的问题,你现在可以检查了吗谢谢@Ashok Kumar,但接受的答案已经对我有用了。
const filtered = selectedItems.filter(item => !actualData.find(data => data.id === item));
console.log(filtered);