JS/TS 對數組中的對象按對象的值進行去重


舉個例子:對以下數組按 lastName 的值進行去重

let listData = [
  { firstName: "Rick", lastName: "Sanchez", size: 18 },
  { firstName: "Morty", lastName: "Smith", size: 6 },
  { firstName: "Jerry", lastName: "Smith", size: 3 },
  { firstName: "Beth", lastName: "Smith", size: 0 },
  { firstName: "Summer", lastName: "Smith", size: 0 },
  { firstName: "Rick", lastName: "Sanchez", size: 18 },
  { firstName: "Morty", lastName: "Smith", size: 6 },
];

去重前:

去重后:

一、普通寫法

let obj = {};
listData = listData.reduce((item, next) => {
  if (!obj[next.lastName]) {
    item.push(next);
    obj[next.lastName] = true;
  }
  return item;
}, []);

二、TS 寫法

const obj: {[key: string]: boolean;} = {};
listData = listData.reduce<ListDataItem[]>((item, next) => {
  if (!obj[next.lastName]) {
    item.push(next);
    obj[next.lastName] = true;
  }
  return item;
},[]);


免責聲明!

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



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