首先我们经常能看到类似这样的数据
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' } ]