方法1:
1 Array.prototype.method1=function(){ 2 var arr=[]; 3 for(var i=0;i<this.length;i++){ 4 if(arr.indexOf(this[i]) == -1){ 5 arr.push(this[i]); 6 } 7 } 8 return arr; 9 }
方法2:
1 Array.prototype.method2 = function(){ 2 var h{}; //定義一個hash表 3 var arr[]; //定義一個臨時數組 4 5 for(var i = 0; i < this.length; i++){ //循環遍歷當前數組 6 //對元素進行判斷,看是否已經存在表中,如果存在則跳過,否則存入臨時數組 7 if(!h[this[i]]){ 8 //存入hash表 9 h[this[i]] = true; 10 //把當前數組元素存入到臨時數組中 11 arr.push(this[i]); 12 } 13 } 14 return arr; 15 }
方法3:
1 Array.prototype.method3 = function(){ 2 //直接定義結果數組 3 var arr[this[0]]; 4 for(var i = 1; i < this.length; i++){ //從數組第二項開始循環遍歷此數組 5 //對元素進行判斷: 6 //如果數組當前元素在此數組中第一次出現的位置不是i 7 //那么我們可以判斷第i項元素是重復的,否則直接存入結果數組 8 if(this.indexOf(this[i]) == i){ 9 arr.push(this[i]); 10 } 11 } 12 return arr; 13 14 }
方法4:
1 Array.prototype.method4 = function(){ 2 //將數組進行排序 3 this.sort(); 4 //定義結果數組 5 var arr[this[0]]; 6 for(var i = 1; i < this.length; i++){ //從數組第二項開始循環遍歷數組 7 //判斷相鄰兩個元素是否相等,如果相等說明數據重復,否則將元素寫入結果數組 8 if(this[i] !== arr[arr.length - 1]){ 9 arr.push(this[i]); 10 } 11 } 12 return arr; 13 14 }