各类数据格式的数组去重大法

各类数据格式的数组去重大法

之前看过许多数组去重的方法,但都写得比较笼统,只描述了去重方法,但其实方法也是要对着其数据格式对症下药。

1. 数组内元素去重例如[1,2,3,4,5,5,6,3,3,2,1]
这类最简易的数据的数据格式可以直接用ES6语法最为快速

const arr = [1,2,3,4,5,5,6,3,3,2,1];
let arr1 = [...new Set(arr)];
let arr2 = Array.from(new Set(arr));
console.log(arr1);//[ 1, 2, 3, 4, 5, 6 ]
console.log(arr2);//[ 1, 2, 3, 4, 5, 6 ]

2.数组内对象比较去重[{name:‘whh’,sex:‘women’},{name:‘hll’,sex:‘man’},{name:‘hll’,sex:‘man’},{name:‘zl’,sex:‘man’}]
这类是业务专用的数据格式

//将name重复的去掉
const arr = [{name:'whh',sex:'women'},{name:'hll',sex:'man'},{name:'hll',sex:'man'},{name:'zl',sex:'man'}];
//先排序(重要)
arr = arr.sort((a,b)=>{
if(a.name.toLowerCase()>b.name.toLowerCase()){
     return 1;
}else{
     return 1;
}
});
for(let i =0;i<arr.length;i++){
    let dex = i+1;
    if(dex<arr.length-1){
        if(arr[i].name===arr[dex].name){
            arr.splice(i,1);
            i--;
        }
    }
}
console.log(arr);//[ { name: 'whh', sex: 'women' },{ name: 'hll', sex: 'man' },{ name: 'zl', sex: 'man' } ]

3.不同数组之间去掉相同的对象元素arr1[{name: ‘whh’, sex: ‘women’},{name:‘hll’,sex:‘man’}]、arr2[{name:‘hll’,sex:‘man’},{ name: ‘zl’, sex: ‘man’ }]
已知arr1和arr2都有name为hll的对象,去掉hll

const arr1 = [{name: 'whh', sex: 'women'},{name:'hll',sex:'man'}];
const arr2 = [{name:'hll',sex:'man'},{ name: 'zl', sex: 'man' }];
for(let i =0;i<arr1.length;i++){
    for(let j =0;j<arr2.length;j++){
        if(arr1[i].name===arr2[j].name){
            arr1.splice(i,1);
            arr2.splice(j,1);
        }
    }
}
console.log(arr1);//[{ name: 'whh', sex: 'women' }]
console.log(arr2);//[{ name: 'zl', sex: 'man' }]

持续补充…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值