zoukankan      html  css  js  c++  java
  • 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;
    },[]);
    
  • 相关阅读:
    九连环
    Fruit Ninja(取随机数)
    Distinct Values(贪心)
    Harvest of Apples
    Don't Be a Subsequence
    ConvexScore
    守卫
    Trie树
    NOIP 2005 过河
    HDU 4597 Play Game 记忆化DP
  • 原文地址:https://www.cnblogs.com/Leophen/p/13782642.html
Copyright © 2011-2022 走看看