分为两种情况:1普通数组;2对象数组
1普通数组
const arr=[1,2,3,2,5,6,3]
const newarr=[...new Set(arr)]
console.log(newarr)//[1,2,3,5,6]
2对象数组,假如有以下数组
const data = [
{ name: '张三', mobile: '13811112222', idCard: '1234567890' },
{ name: '李四', mobile: '13911113333', idCard: '2345678901' },
{ name: '王五', mobile: '13811112222', idCard: '3456789012' },
{ name: '赵六', mobile: '13711114444', idCard: '4567890123' },
{ name: '钱七', mobile: '13911113333', idCard: '5678901234' }
];
操作目的是筛选出mobile字段不重复的记录
首先取出data中的所有的mobile字段的值
const mobile=data.map(item=>item.mobile)
第二步对mobile进行去重
const newmobile=[...new Set(mobile)]
第三步 拿newmobile中的值遍历data,筛选出相应的记录
const newdata=mobilenew.map(item=>{
return data.find(item=>item.mobile===item)
})
完整代码实现
const data = [
{ name: '张三', mobile: '13811112222', idCard: '1234567890' },
{ name: '李四', mobile: '13911113333', idCard: '2345678901' },
{ name: '王五', mobile: '13811112222', idCard: '3456789012' },
{ name: '赵六', mobile: '13711114444', idCard: '4567890123' },
{ name: '钱七', mobile: '13911113333', idCard: '5678901234' }
];
const mobile=data.map(item=>item.mobile)
const mobilenew=[...new Set(mobile)]
const newdat=mobilenew.map(item=>{
return data.find(itmes=>itmes.mobile===item)
})
console.log(newdat)
// [
// { name: '张三', mobile: '13811112222', idCard: '1234567890' },
// { name: '李四', mobile: '13911113333', idCard: '2345678901' },
// { name: '赵六', mobile: '13711114444', idCard: '4567890123' }
// ]