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 { } });