ES6 过滤掉两个数组中对象id相等的值

let arr1=[
		{
			id:1,
			name:"苏罡",
			hobby:[
				{id:1,name:"打篮球"},
				{id:2,name:"吃饭"},
				{id:3,name:'喝水'},		
			]
		},
		{
		 id:2,
		 name:"邓超",
		 hobby:[
				{id:1,name:"睡觉"},
				{id:2,name:"吃饭"},
				{id:3,name:'听歌'},		
			]
		},
		{id:3,name:"刘宇航"},
		{id:4,name:"施昭通"},
	]
	let arr2=[
		{id:3,name:"A"},
		{id:4,name:"B"},
		{id:5,name:"C"},
		{id:6,name:"D"},
	]
	//one
	let arr3 = arr1.filter(obj=>!arr2.some(obj1=>obj1.id==obj.id))
	console.info(arr3)
	//two
	let arr4=[];
	let arr5;
	arr2.filter(obj=> arr4.push(obj.id));
	arr5 = arr1.filter(obj=>arr4.indexOf(obj.id)==-1)
	console.info(arr5);	


版权声明:本文为sugang666原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。