ES6 利用reduce(数组/数组对象)去重

119 阅读1分钟
     {id: 0, name: "小明"},
     {id: 1, name: "小张"},
     {id: 2, name: "小李"},
     {id: 3, name: "小孙"},
     {id: 4, name: "小周"},
     {id: 5, name: "小张"},   
];
 let obj = {};//有助于增加遍历效率
 
 
let person = person.reduce((cur,next) => {
    obj[next.name] ? "" : obj[next.name] = true && cur.push(next);
    return cur;
},[])



1和5的name 重复 reduce 从左往右开始 输出:

[
     {id: 0, name: "小明"},
     {id: 1, name: "小张"},
     {id: 2, name: "小李"},
     {id: 3, name: "小孙"},
     {id: 4, name: "小周"}
    ]

reduceRight 从右向左开始

[     
      {id: 5, name: "小张"},
      {id: 4, name: "小周"},
      {id: 3, name: "小孙"},
      {id: 2, name: "小李"},
      {id: 0, name: "小明"},
    ]

自己灵活处理