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

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

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中对象数组根据属性去重的方法)