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))
	}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章