JavaScript陣列去重的原型方法
阿新 • • 發佈:2019-01-06
本文主要說明兩種原型方法來過濾陣列中的重複元素。
方法一:
思路:1)構建一個新的陣列存放結果;
2)for迴圈中每次從原陣列中取出一個元素,用這個元素迴圈與結果陣列對比;
3)若結果陣列中沒有該元素,則存到結果陣列中。
程式碼實現:
方法二:Array.prototype.unique1 = function(){ var res = [this[0]]; for(var i = 1; i < this.length; i++){ var repeat = false; for(var j = 0; j < res.length; j++){ if(this[i] == res[j]){ repeat= true; break; } } if(!repeat){ res.push(this[i]); } } return res; } var arrNum2 = [1,4,1,1,3,3,4,6,7,8,3,7,0,2,11,2,2,22,11,22]; console.log(arrNum2.unique1());
思路:1)構建一個臨時陣列存放結果;
2)迴圈遍歷當前陣列,判斷當前陣列下標為i的元素是否已經儲存在臨時陣列,如果已儲存,則跳過,否則將此元素儲存到臨時陣列中。
程式碼實現:
Array.prototype.method1 = function(){ var arr=[]; //定義一個臨時陣列 for(var i = 0; i < this.length; i++){ //迴圈遍歷當前陣列 //判斷當前陣列下標為i的元素是否已經儲存到臨時陣列 //如果已儲存,則跳過,否則將此元素儲存到臨時陣列中 if(arr.indexOf(this[i]) == -1){ arr.push(this[i]); } } return arr; }; var arrNum1 = [1,4,1,1,3,3,4,6,7,8,3,7,0,2,11,2,2,22,11,22]; console.log(arrNum1.method1());
兩種方法的結果: