如何从基于另一个Int数组的对象数组中删除对象?

dhe*_*ena 0 javascript arrays jquery object

我正在尝试使用Java脚本从基于另一个int数组的对象数组中删除对象。

整数数组包含对象数组中的ID。我想从没有整数数组的id的对象数组中删除对象。

例:

var x =[{name : 'mark' , Id : '10' , color:'green'},
  {name : 'hen' , Id : '15' , color:'blue'} ,
  {name : 'joy' , Id : '30' , color:'yellow'},
  {name : 'mick' , Id : '15' , color:'red'},
  {name : 'nick' , Id : '40' , color:'black'}] ; 

var y =['40','15'];
Run Code Online (Sandbox Code Playgroud)

从以上两个数组中,我想从x数组中删除ID在y数组中不存在的对象;

结果应为:

x =[{name : 'hen' , Id : '15' , color:'blue'},
  {name : 'mick' , Id : '15' , color:'red'},
  {name : 'nick' , Id : '40' , color:'black'}];
Run Code Online (Sandbox Code Playgroud)

Mah*_*Ali 6

您可以使用filter()并检查是否Idy数组中includes()

var x = [{name : 'mark' , Id : '10' , color:'green'}, {name : 'hen' , Id : '15' , color:'blue'} , {name : 'joy' , Id : '30' , color:'yellow'}, {name : 'mick' , Id : '15' , color:'red'}, {name : 'nick' , Id : '40' , color:'black'}] ;
var y = ['40','15'];

const res = x.filter(a => y.includes(a.Id));
console.log(res)
Run Code Online (Sandbox Code Playgroud)