reduce 对象数组去重

作者: 赵永盛 | 来源:发表于2019-07-01 20:24 被阅读0次

reduce 对象数组去重:

let person = [
 {id: 0, name: "小明"},
 {id: 1, name: "小张"},
 {id: 2, name: "小李"},
 {id: 3, name: "小孙"},
 {id: 1, name: "小周"},
 {id: 2, name: "小陈"}
];


let obj = {}

person = person.reduce((cur, next) => {
    if (!obj[next.id]) {

        obj[next.id] = true

        cur.push(next)
    }

    return cur
}, [])

console.log(person)

解析:
其实就是用 obj 来存储已经放入新数组的元素,每次遍历旧数组都去 obj 中检查是否已经存在 id值相同的元素。如果不存在,则放入新数组。

当然,很多人是这么写的:

person = person.reduce((cur, next) => {
    obj[next.id] ? '' : obj[next.id] = true && cur.push(next)

    return cur
}, [])

其实是一样的

相关文章

  • js reduce去重用法

    reduce不仅仅可以数据累加,还可以实现去重效果。 重复次数计算 数组去重 数组对象去重,转为数组 对象去重

  • reduce数组去重-对象数组

    对于简单数组去重方法非常多,项目需求中多用到对象数组利用reduce数组方法比较简单historyType/dat...

  • reduce 对象数组去重

    reduce 对象数组去重: 解析:其实就是用 obj 来存储已经放入新数组的元素,每次遍历旧数组都去 obj 中...

  • js中数组对象去重的方法

    采用数组中的reduce方法,遍历数组,也是通过对象访问属性的方法 参考js中数组对象去重的方法

  • 前端对象数组去重reduce

    说起前端去重,对es6比较熟悉的就会想到 set 方法 set去重方法 可以看到,set方法去重只能针对普通的数...

  • 数组对象去重之reduce

    需求: 有一个对象数组需要根据里面的几项进行去重和其他操作; 方法:用reduce 在其每一次循环的时候,匹配累计...

  • 工具方法

    对象数组如何去重: reduce 实现对象数组去重复: 实现一个函数判断数据类型: 查找字符串中出现最多的字符和个...

  • 数组去重

    使用set进行简单去重 使用reduce进行复杂数组去重

  • 数组的相对高阶方法使用

    1.js根据数组中对象的某个属性值进行去重 2.reduce方法介绍 [https://www.teaspect....

  • 对象数组去重的简便方法reduce()

网友评论

    本文标题:reduce 对象数组去重

    本文链接:https://www.haomeiwen.com/subject/ghnncctx.html