方法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:this
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:spa
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:prototype
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 }