首先我們經(jīng)常能看到類(lèi)似這樣的數(shù)據(jù)
let datainfo=[
{task:'1',
keyword:'abc',
},
{task:'1',
keyword:'abd',
},
{task:'3',
keyword:'abe',
},
{task:'2',
keyword:'abd',
}
]
這種情況下我們需要進(jìn)行根據(jù)task屬性進(jìn)行去重,在過(guò)去,我們可以通過(guò)lodash的uniqBy的方法來(lái)達(dá)到這個(gè)目的。
今天介紹使用ES6的的方法來(lái)實(shí)現(xiàn)這個(gè)目的:
let hash = {};
datainfo = datainfo.reduce(function(item, next) {
hash[next.task] ? '' : hash[next.task] = true && item.push(next);
return item
}, [])
console.log(datainfo);
執(zhí)行完成后控制臺(tái)將看到的結(jié)果如下:
[ { task: '1', keyword: 'abc' },
{ task: '3', keyword: 'abe' },
{ task: '2', keyword: 'abd' } ]