最近做项目时遇到了在localStorage里存了数组嵌套对象的数据需要去重的问题。找到了以下的解决方法,就分享一下:
原数组data的格式,现需要根据id将重复的数据删除:
let data = [
{ id: 000001, name: '张三', },
{ id: 000002, name: 'John', },
{ id: 000003, name: '李四', },
{ id: 000001, name: '张三', },
{ id: 000004, name: 'Jack', },
{ id: 000005, name: '王五', },
{ id: 000004, name: 'Jack', },
{ id: 000002, name: 'John', },
{ id: 000004, name: 'Jack', },
];
1、使用数组的reduce()方法
let hash = {};
data = data.reduce((preVal, curVal) => {
hash[curVal.id] ? '' : hash[curVal.id] = true && preVal.push(curVal);
return preVal
}, [])
console.log(data)
输出结果:
r