美文网首页JavaScript 进阶营
ES6中对象数组根据属性去重的方法

ES6中对象数组根据属性去重的方法

作者: letonode | 来源:发表于2019-04-25 13:22 被阅读0次

首先我们经常能看到类似这样的数据

let datainfo=[
    {task:'1',
        keyword:'abc',

    },
    {task:'1',
        keyword:'abd',
    },
    {task:'3',
        keyword:'abe',
    },
    {task:'2',
        keyword:'abd',
    }
]

这种情况下我们需要进行根据task属性进行去重,在过去,我们可以通过lodash的uniqBy的方法来达到这个目的。

今天介绍使用ES6的的方法来实现这个目的:

let hash = {};
datainfo = datainfo.reduce(function(item, next) {
    hash[next.task] ? '' : hash[next.task] = true && item.push(next);
    return item
}, [])
console.log(datainfo);

执行完成后控制台将看到的结果如下:

[ { task: '1', keyword: 'abc' },
  { task: '3', keyword: 'abe' },
  { task: '2', keyword: 'abd' } ]

相关文章

网友评论

    本文标题:ES6中对象数组根据属性去重的方法

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