数组去重的12种方法4-对象属性

利用对象的属性不能相同的特点进行去重:

var b = Array.from('acbacebgjfab')  //通过Array.from方法定义一个新的数组
    function uniq(arry){
      if(!Array.isArray(arry)){   //先判断传入的数据是不是数组类型
        return alert('传入数据类型错误!')
      }
      var newArray=[];  //定义一个新的数组,用来接收去重后的值
      var obj = {}  //定义一个新的对象,利用对象属性名不能重复,来判断值是否重复
      for(let i=0;i<arry.length;i++){
        if(!obj[arry[i]]){  //如果对象中没有这项属性名,说明值没有重复
          newArray.push(arry[i])  // 将没有重复的值push到新的数组当中去
          obj[arry[i]]=1  //给对象中属性名为arry[i]赋值,表示第一次出现
          // console.log(obj[arry[i]])
        }else{
          obj[arry[i]]++  // 如果在对象中出现,只需要给对象中这一项的次数+1
          // console.log(obj[arry[i]])
        }
      }
      console.log(obj);
      return newArray
    }
    console.log(uniq(b));
时间如白驹过隙,忽然而已,且行且珍惜......
原文地址:https://www.cnblogs.com/UnfetteredMan/p/13958056.html