数组去重

1.原数组去重

       //1.0
        function arrUnique(arr) {
            for (var i = 0; i < arr.length; i++) {
                for (var j = i + 1; j < arr.length; j++) {
                    if (arr[i] === arr[j]) { //如果第一个和第二个一样,splice方法减去第二个;
                        arr.splice(j, 1)
                        j--
                    }
                }
            }
            return arr
        }
      //1.1
       function arrUnique2(arr){
            for(var i = 0; i < arr.length; i++){
                if(arr.indexOf(arr[i]) !== i){
                    arr.splice(i,1)
                    i--
                }
            }
       }

2.返回新的数组

          //2.1
          function arrUnique(arr) {
            var list = [];
            for(var i = 0; i < arr.length; i++) {
                // 检测err中是否有当前数组元素,如果有,不向err中添加,如果没有,向err中添加
                if(list .indexOf(arr[i]) === -1) {
                    list .push(arr[i]);
                }
            }
            return list 
         }
         //2.2
        function arrayUnique(arr) {
            return [...new Set(arr)]
       }

3.实现根据对象数组某一项去重

function unique(arr,key) {
  const res = new Map();
  return arr.filter(e => !res.has(e[key]) && res.set(e[key], 1))
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值