JS中求兩個JSON數組的交集、並集(數組去重)和補集

JS中求兩個JSON數組的交集、並集(數組去重)和補集。

這裏使用了Array的filter()、some()兩個方法。

假設有兩個如下JSON數組:
		var a = [{a: 1}, {a: 3}, {a: 5}];
		var b = [{a: 1}, {a: 2}, {a: 3}, {a: 4}, {a: 5}];
		
		//交集
		var result = b.filter(x=>{
			return a.some(y=>{
				return x.a==y.a;
			})
		})
		console.log(result)  //[{a: 1}, {a: 3}, {a: 5}]
	   
	   
	   //並集(去重)
	   var c = a.concat(b);
	   function removeRepeat(arr){
		   let result = [];
		   let temp = {}
		   arr.forEach(item=>{
			   if(!temp[item.a]){
				   result.push(item)
				   temp[item.a] = true;
			   }
		   })
		   return result
	   }
	   console.log(removeRepeat(c))
	   
		// 補集
		var c = a.concat(b);
		var result = c.filter(x=>{
			return !a.some(y=>{
				return x.a==y.a;
			})&&b.some(z=>{
				return x.a==z.a;
			})
		})
		console.log(result) //[{a: 2},{a: 4}]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章