1 let arr = [ 2 { 3 maxDeptCode: "md3", 4 maxDeptName: "泡泡", 5 minDeptCode: "md301", 6 minDeptName: "泡泡少兒", 7 schoolId: 1, 8 schoolName: "北京", 9 }, 10 { 11 maxDeptCode: "md2", 12 maxDeptName: "中學", 13 minDeptCode: "md201", 14 minDeptName: "中學一對一", 15 schoolId: 1, 16 schoolName: "北京", 17 }, { 18 maxDeptCode: "md3", 19 maxDeptName: "泡泡", 20 minDeptCode: "md301", 21 minDeptName: "泡泡少兒", 22 schoolId: 1, 23 schoolName: "北京", 24 }, 25 ]; 26 27 28 29 function process(arr) { 30 // 緩存用於記錄 31 const cache = []; 32 for (const t of arr) { 33 // 檢查緩存中是否已經存在 34 if (cache.find(c => c.maxDeptCode === t.maxDeptCode && c.minDeptCode === t.minDeptCode)) { 35 // 已經存在說明以前記錄過,現在這個就是多余的,直接忽略 36 continue; 37 } 38 // 不存在就說明以前沒遇到過,把它記錄下來 39 cache.push(t); 40 } 41 42 // 記錄結果就是過濾后的結果 43 return cache; 44 } 45 46 console.log(process(arr));
打印結果如下: