方法一:常規方法
思路:1.構建乙個新的陣列存放結果
2.for迴圈中每次從原陣列中取出乙個元素,用這個元素迴圈與結果陣列對比
3.若結果陣列中沒有該元素,則存到結果陣列中
/*
*物件導向,是乙個方法
*/array.prototype.unique1 = function
() }
if(!repeat)
}return res;
}var arr = [1, 10, 5, 121, 1, 50, 30, 30, 5];
alert(arr.unique1());//輸出結果:[1, 5, 10, 30, 50, 121]
方法二:排序方法;效率略高第一種方法,注意排序問題
思路:1.先將原陣列進行排序
2.檢查原陣列中的第i個元素 與 結果陣列中的最後乙個元素是否相同,因為已經排序,所以重複元素會在相鄰位置
3.如果不相同,則將該元素存入結果陣列中;
/*
* 面向過程,普通寫法;
*//*var arr=[1,10,5,121,1,50,30,30,5];
arr.sort(function(a,b));
var arr1=;
console.log(arr)
for (var i=0;i/*
* 物件導向的方法
*/array.prototype.unique2 = function
()); //先排序(注意,含有字元的陣列排序根據實際情況排序)
var res = [this[0]];
for(var i = 1; i < this.length; i++)
}return res;
}var arr = [1,10,5,121,1,50,30,30,5];
console.log(arr.unique2());//輸出結果:[1, 5, 10, 30, 50, 121]
1.建立乙個新的陣列存放結果
2.建立乙個空物件
3.for迴圈時,每次取出乙個元素與物件進行對比,如果這個元素不重複,則把它存放到結果陣列中,同時把這個元素的內容作為物件的乙個屬性,並賦值為1,存入到第2步建立的物件中。
說明:至於如何對比,就是每次從原陣列中取出乙個元素,然後到物件中去訪問這個屬性,如果能訪問到值,則說明重複。
array.prototype.unique3 = function();
for(var i = 0; i < this.length; i++)
}return res;
}var arr = [112,112,34,'你好',112,112,34,'你好','str','str1'];
alert(arr.unique3());//輸出結果為:[112, 34, "你好", "str", "str1"]
陣列去重的三種方法
var arr1 建立臨時陣列 var obj 建立空物件 for var i 0 i arr.length i return arr1 var arr 1,1,1,1,2,3,5,6,6,6 console.log unique arr var arr1 for var i 0 i arr.len...
js陣列去重的三種方法
1.利用陣列操作方法splice實現陣列去重 var arr 1 2,2 3,3 3,4 4,5 6,6 7,7 7,8 8,9 function newarr arr return arr console.log newarr arr 返回結果 1 2,3 4,5 6,7 8,9 2.利用inde...
js陣列去重的三種方法
此方法是比較常用的方法之一,也是es5中比較實用的方法之一。話不多說,上 function newarr arr return arr var arr 1 1,2 5,6 3,5 5,6 8,9 8 console.log newarr arr 此方法也是es5中比較簡單的方法之一,基本思路是新建乙...