首页 > Web开发 > 详细

js---去重方法(二)

时间:2019-08-11 17:18:22      阅读:70      评论:0      收藏:0      [点我收藏+]

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

  

js---去重方法(二)

原文:https://www.cnblogs.com/ccyq/p/11335272.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!