方法一
? -思路:每遍歷一次就和之前的所有做比較馋缅,不相等則放入新的數(shù)組中预吆!
? -這里用的原型?個(gè)人做法诲祸;
Array.prototype.unique?=?function(){
? ? var?len?=?this.length,
? ? ? ? ? newArr?=?[],
? ? ? ? ? flag?=?1;
????for(var?i?=?0;?i?<?len;?i++,?flag?=?1){
????????for(var?j?=?0;?j?<?i;?j++){
????????????if(this[i]?==?this[j]){
????????????????flag?=?0;????????//找到相同的數(shù)字后封断,不執(zhí)行添加數(shù)據(jù)
????????????}
????????}
????????flag???newArr.push(this[i])?:?'';
????}
????return?newArr;
}
方法二
var arr=[1,2,3,3,4,4,5,5,6,1,9,3,25,4];
Array.prototype.unique2 = function(){
?????var n = []; //一個(gè)新的臨時(shí)數(shù)組? ? ?for(var i = 0; i < this.length; i++) //遍歷當(dāng)前數(shù)組 {
????????//如果當(dāng)前數(shù)組的第i已經(jīng)保存進(jìn)了臨時(shí)數(shù)組矛缨,那么跳過爹脾, //否則把當(dāng)前項(xiàng)push到臨時(shí)數(shù)組里面
????????if (n.indexOf(this[i]) == -1) n.push(this[i]);
????}
????return n;
}
var newArr2=arr.unique2(arr);
alert(newArr2); //輸出1,2,3,4,5,6,9,25
方法三
? ? -采用es6的set容器實(shí)現(xiàn)去重
var arr = [1,1,2,2,3]
var arr1 = new Set(arr)
console.log(arr1) //輸出1,2,3