解決方案:
1、依次拿出陣列中的每一項(排除最後一項,最後一項後面沒有需要比較的內容)
2、和當前拿出項後面的每一項依次比較
3、如果發現有重複的,我們把找到的這個重複向在原有陣列中刪除掉
方案一:雙重for 迴圈
var ary = [1,2,3,2,2,7,9,2,3,5,2,8]
for(var i =0; i方案二:利用sort()
首先使用 sort() 將陣列進行排序
然後比較相鄰元素是否相等,從而排除重複項
var ary = [1,2,3,2,2,7,9,2,3,5,2,8];
ary = ary.sort();
var newary = [ary[0]]; //第一位首先給它賦值因為第一位不放迴圈裡面
for(var i=1; i方案三:new set()
es6 新增了 set 這一資料結構,類似於陣列,但 set 的成員具有唯一性
基於這一特性,就非常適合用來做陣列去重了
var ary = [1,2,3,2,2,7,9,2,3,5,2,8];
array.from(new set(ary))
方案四:利用遞迴去重
function unique(arr) )
function loop(index)
loop(index - 1); //遞迴loop,然後陣列去重}}
loop(len-1);
return array;
}var ary = [1,2,3,2,2,7,9,2,3,5,2,8];
console.log(unique(ary ))
方案五:利用物件的屬性不能相同的特點進行去重
var ary = [1,2,3,2,2,7,9,2,3,5,2,8];
var obj = ; //建立乙個空物件
for(var i=0;iobj[item] = item;
}
js 陣列去重多種方法
var arr 1,2,3,2,1,2,1,34,44 方法一 利用jquery unique var newarr unique arr 方法二 利用indexof去重 var newarr for var i 0 i if newarr.indexof arr i 1 return newarr...
js陣列去重的多種方法
我總共想出了三種演算法來實現這個目的 array.prototype.unique1 function return n array.prototype.unique2 function r n為hash表,r為臨時陣列 for var i 0 i this.length i 遍歷當前陣列 retu...
js陣列去重的多種方法
1.雙層迴圈 function unique arr newarr.push arr i 若當前元素沒有重複的,將其追加到新陣列中 return newarr 返回新陣列 2.利用陣列的indexof下標屬性來查詢。判斷新陣列中是否存在當前元素如果沒有就加入 function unique arr ...