陣列去重方法整理

2021-09-29 11:50:26 字數 977 閱讀 7727

陣列去重看似乙個簡單的問題,隨著我們的學習,對於新知識的掌握這個曾經困著我們的問題逐漸變得游刃有餘。要去重,中心解決辦法就是比較該陣列中是否重複的元素,而後將重複的元素去掉。以下帶來幾個樓主折磨自己中研究出的一點方法~~

for迴圈法~~

思路:將陣列中的每乙個數與陣列中其他的數進行比較,看是否有相同的。如果沒有相同的那麼該數即直接放到新陣列裡。新的陣列中就是無重複的陣列。

例項:

function solution1()

//注:關鍵:沒有吧後面的if放入迴圈,所以第一次會迴圈進if(res.length == j),讓res有乙個初始的值。

if(res.length == j) //這個的思路比較巧妙,意思是:當該數比較到最後一位都沒有數與它相等,那麼直接可以表明這個數在該陣列中沒有重複的,可以直接輸出。res[res.length] = arr[i];

}document.writeln( res);

}solution1();

hash陣列法~hash陣列法即用原陣列中的元素作為新陣列的下標。如果hash陣列(或者理解為物件)裡沒有這個屬性的話(即:該陣列的項沒有被定義)就會返回undefined。 利用這個原理,當返回的是undefined時 ,把這個元素放入陣列中, 然後在給這個屬性賦值

function fun2() 

}document.writeln( res + "

"); }

fun2();

當然有朋友就會問了,之前的都是以生成新的陣列來避開對原陣列的更改。如果想在原陣列上怎麼辦?

這裡用方法1引申一下。具體如下所示:

function fun3() {

var arr = [1,1,1,3,4,3,4,6,8,3,1,2];

for(var i=0; i若要在方法二上使用也是一樣的道理!j - -至關重要!

JS實現陣列去重方法整理

我們先來看下面的例子,當然 與網路,位址 刪除陣列中多個不連續的陣列元素的正確姿勢 我們現在將陣列中所有的 a 元素刪除 var arr a a b c d a a e g a f arr.foreach function value,index console.log arr a b c d a ...

整理一波陣列去重方法

關於陣列去重,一直用的是迴圈,還有es6的set,查閱資料竟有如此多的去重方法,整理了如下。直接上乾貨 function unique arr if isrepeat return newarr var arr 5,6,1,8,1,6 console.log unique arr var newar...

整理陣列去重的幾種常用方法

最近面試有乙個面試題,要求盡可能多的列舉陣列去重的方法,現整理一下 最簡單陣列去重法 新建一新陣列,遍歷傳入陣列,值不在新陣列就push進該新陣列中 ie8以下不支援陣列的indexof方法 function uniq array return temp var aa 1,2,2,4,9,6,7,5...