JS数组去重的几种实现方法

    //使用indexOf
    function unique1(arr) {
		var result=[];
		for(var i=0;i<arr.length;i++){
			if(result.indexOf(arr[i])==-1){
				result.push(arr[i]);
			}
		}
		return result;
	}

	//利用对象属性不能重复
	function unique2(arr){
		var result=[],obj=new Object();
		for(var i=0;i<arr.length;i++){
			if(obj[arr[i]]!=1){
				result.push(arr[i]);
				obj[arr[i]]=1;
			}
		}  
		return result;
	}

	//先排序再排重
	Array.prototype.unique3=function(){
		this.sort();
		var result=[this[0]];
		//与结果数组的最后一项相比,不一样就插入结果数组
		for(var i=1;i<this.length;i++){
			if(this[i]!==result[result.length-1]){
				result.push(this[i]);
			}
		}
		return result;
	}

	//利用es6的set,用from把set变为数组结构
	function unique4(arr){
		return Array.from(new Set(arr))
	}

猜你喜欢

转载自blog.csdn.net/weixin_41531446/article/details/86357049