es6 set取兩個數組的交集


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM