const difference= (a, b) => {
const sA = new Set(a), sB = new Set(b);
return [...a.filter(x => !sB.has(x)), ...b.filter(x => !sA.has(x))];
}
// difference([1,2,3], [1,2,4]) -> [3,4]
let arr1 = [
{"__row":12,"name":"甲"},
{"__row":3,"name":"乙"},
{"__row":6,"name":"丙"},
{"__row":17,"name":"丁"},
];
let arr2 = [
{"__row":12,"name":"张"},
{"__row":23,"name":"李"},
{"__row":6,"name":"王"},
{"__row":57,"name":"陈"},
];
const id_arr1 = new Set(arr1.map(o => o.__row));
const id_arr2 = new Set(arr2.map(o => o.__row));
//id的交集
const allIds = new Set([...id_arr1].filter(x => id_arr2.has(x)))
console.log(allIds)
arr1.forEach(o => {
//如果有交集
if (allIds.has(o.__row)) {
console.log(o)
//结果
} else {
}
});