| 做项目中难免会遇到数组如何去重的问题,下面我们就来说说几种js去重的方法。 
 1.indexOf方法:新建一个数组,再遍历去重的数组,如果当前元素不在新数组的话,就加入到新数组当中
 
 2.遍历数组法:双层循环[JavaScript] 纯文本查看 复制代码     function getArr(arr){
    	var newArr = [];
	    for(var i = 0; i < arr.length; i++){
	        if(newArr.indexOf(arr[i]) == -1){
	            newArr.push(arr[i])
	        }
	    }
	    return newArr;
	}       
	
	var arr = [1,2,2,3,4,4,5,1,3];
	console.log(getArr(arr));
 [JavaScript] 纯文本查看 复制代码 	function getArr(arr){
	    var newArr = [];
	    for(var i = 0; i < arr.length; i++){
	        for(var j = i+1; j < arr.length; j++){
	            if(arr[i] == arr[j]){
	                ++i;
	            }
	        }
	        newArr.push(arr[i]);
	    }
	    return newArr;
	}
	var arr = [1,2,2,3,5,3,6,5,2,3,4];
	console.log(getArr(arr));3.利用对象的属性不能相同的特点去重:新建一个数组和一个空对象,for循环时,每次取出一个元素与对象进行对比,如果这个元素不重复,则把它存放到结果数组中,同时把这个元素的内容作为对象的一个属性,并赋值为1,存入到建立的对象中。
 
 [JavaScript] 纯文本查看 复制代码 function getArr(arr){
	    var res = [];
	    var obj = {};
	    for(var i=0; i<arr.length; i++){
	       if( !obj[arr[i]] ){
	            obj[arr[i]] = 1;
	            res.push(arr[i]);
	        }
	    } 
	 return res;
	}
	
	var arr = [1,2,2,3,5,3,6,5,2,3,4,7];
	console.log(getArr(arr));
 4.ES6数组去重:set方法
 
 [JavaScript] 纯文本查看 复制代码 function getArr(arr){
	 //Set数据结构,它类似于数组,其成员的值都是唯一的
	 return Array.from(new Set(arr)); // 利用Array.from将Set结构转换成数组
	}
	
	var arr = [1,2,2,3,5,3,6,5,2,3,4,7];
	console.log(getArr(arr));
 
 
 以上就是总结的js去重的几种方法,希望可以帮助到大家!
 
 
 
 |