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

时间:2019-04-30 14:07:54

标签: javascript jquery arrays object

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

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'];

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

结果应为:

x =[{name : 'hen' , Id : '15' , color:'blue'},
  {name : 'mick' , Id : '15' , color:'red'},
  {name : 'nick' , Id : '40' , color:'black'}];

1 个答案:

答案 0 :(得分:6)

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

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)