常見問題之陣列去重

2022-07-17 06:24:11 字數 1045 閱讀 5996

現在面試時候,還會時常提到陣列去重問題,藉著休息的這幾天自己也總結一下,不求全面只求簡單易懂的幾個去重方法吧。

array.prototype.uniquea = function

() }

if(!isrepetition)

}return

result;

}

第乙個方法是另建乙個結果陣列,用來儲存原始陣列中不重複的資料。遍歷原始陣列依次跟結果陣列中的元素進行比較,檢測是否重複。

array.prototype.uniqueb = function

() }

return

result;

}

第二個方法是比較通俗一下了,用了indexof方法,indexof 方法的意思是搜尋整個陣列中具有給定值的元素,返回找到的第乙個元素的索引,沒有找到就返回 -1 。這個**也相對的少一些,至於執行效率,這個我不清楚,應該不高。

array.prototype.uniquec = function

() }

result.push(

this

[i]);

}return

result;

}

第三個方法的原理是第一層從前往後遍歷原始陣列,第二層迴圈是檢測每個元素是否跟它之後的元素重複,如果它之後有重複元素則跳過它;如果這個元素之後所有元素都跟他不重複了,則把它新增到結果陣列中。這個方法實現思路就是:獲取無重複的最右一值新增到結果陣列中,這個跟第一種方法相比也優化了第二層的迴圈,效率要比它高,不過這個方法的結果陣列中元素的順序跟原始陣列中元素的順序不一樣了,嘻嘻 可以自己琢磨下,這個方法我也不是很理解,但是也屬於精簡路線。

array.prototype.uniqued = function

() }

return

result;

}

最後乙個方法是先把陣列進行排序,,然後再進行去重工作。好啦,整理的都是**比較短的陣列去重方法,希望能幫到你們。

常見陣列去重方法

js陣列去重的幾種常見方法 一 簡單的去重方法 最簡單陣列去重法 新建一新陣列,遍歷傳入陣列,值不在新陣列就push進該新陣列中 ie8以下不支援陣列的indexof方法 function uniq array return temp var aa 1,2,2,4,9,6,7,5,2,3,5,6,5...

陣列去重常見方法

一 利用物件屬性不能相同原理 function norepeat arr for var i 0 i arr.length i for var key in obj return newarr console.log norepeat 5,5,7,8,2,5 二 先利用sort排序,再兩個相鄰的比較...

js陣列去重問題

1.雙層迴圈 外層迴圈,內層比較值 1 利用splice直接在原陣列進行操作 array.prototype.delrepeat function return arr var a 1,2,4,4,5,6,5,3,2,4,9,4,1,2,9,1,1 console.log a.delrepeat 1...