封装去除数据重复元素的几种方法(es6新方法和es6之前的老方法)

去除重复元素要分两类,一类是JSON数组,一类是普通数组

JSON数组要注意一点,如果对象的指针指向不一样,那么就算属性完全相同,也不能算作重复元素,所以我这里根据对象的唯一标识判断是否重复

上代码

 Array.prototype.duplicate=function(isObj=false,prop){
    if(isObj==false){
      let set = new Set(this)
      let arr  = Array.from(set)
      return arr
    }else{
      let arr = []
      for(let i=0; i<this.length; i++){
        for(var j =0;j<i;j++){
          if(this[i][prop] == this[j][prop]){ 
            break
            }
        }
        if(i==j){
          arr[arr.length] = this[i]
        }
      }
      return arr
    }
  }
  let arr = [{id:1,name:"小胖娃娃"},{id:1,name:"小娃娃"}]
  console.log(arr.duplicate(true,"id"))

猜你喜欢

转载自blog.csdn.net/zero_person_xianzi/article/details/88662128
今日推荐