• js---去重方法(二)


    1. 利用hasOwnProperty  判断是否存在对象属性

    function unique(array){
    	var obj = {};
    	return array.filter(function(item,index,array){
    		return obj.hasOwnProperty(typeof item+item) ? false : (obj[typeof item+item]=true)
    	})
    }
    var array = [1,2,1,20];
    console.log(unique(array))  // 1 2 20
    

    2 利用filter 

    function unique(array){
    	return array.filter(function(item,index,array){
    		//当前元素,在原始数组中的第一个索引==当前索引值,否则返回当前元素
    		return array.indexOf(item,0) === index
    	})
    }
    var array = [1,2,3,1,2,3,4]
    console.log(unique(array)) // 1 2 3 4
    

    3 利用递归去重

     function unique(arr){
    	 var array = arr;
    	 var len = array.length;
    	 array.sort(function(a,b){
    	 	return a- b;
    	 })
    	 function loop(index){
    		 if(index >= 1){
    			 if(array[index] === array[index-1]){
    				 array.splice(index,1);
    			 }
    			 loop(index-1);//递归loop,然后数组去重
    		 }
    	 }
    	 loop(len-1);
    	 return array;
     }
     var array = [1,2,4,1,2,4];
     console.log(unique(array)) // 1 2 4
    

    4. 利用Map数据结构去重 

     function unique(arr){
    	  let map = new Map();
    	  let array = new Array();//数组用于返回结果
    	  for(let i = 0;i<arr.length;i++){
    		  if(map.has(arr[i])){
    			  //如果有该key值
    			  map.set(arr[i],true);
    		  }else{
    			  map.set(arr[i],false);//如果没有该值
    			  array.push(arr[i])
    		  }
    	  }
    	  return array;
      }
      var arr = [1,4,7,1,4,7];
      console.log(unique(arr)) // 1 4 7
    

      

  • 相关阅读:
    Java并发学习笔记
    OSI七层网络模型
    网络寻址过程
    ThinkPhp之Rce分析
    Java cc6
    Java cc1
    Yso中的URLDNS分析学习
    JWT攻防
    权限维持之创建本地账号(T1136.001)
    redis配置修改后不生效的原因
  • 原文地址:https://www.cnblogs.com/ccyq/p/11335272.html
Copyright © 2020-2023  润新知