JS陣列去重的多種方法

2021-09-26 08:10:44 字數 1114 閱讀 4610

解決方案:

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 ...