javascript
使用JavaScript进行数组去重——一种高效的算法
最近比較忙,沒時間更新博客,等忙完這陣子會整理一篇使用AngularJS構(gòu)建一個中型的單頁面應(yīng)用(SPA)的文章,盡情期待!先占個坑。
數(shù)組去重的算法有很多種,以下是一種。
思路如下:
如此便可去重。
代碼如下:
1 function unique(arr){ 2 var obj={}; 3 var result=[]; 4 for(var i=0;i<arr.length;i++){ 5 if(!obj[arr[i]]){ 6 result.push(arr[i]); 7 obj[arr[i]]=true; 8 } 9 } 10 return result; 11 } 12 var array = [32,12,4,27,12,9,20,32,12,8,44,18]; 13 console.log(unique(array));?---------------------------------------------------------------------------------- 華麗的分割線 -------------------------------------------------------------------------------------
寫完之后發(fā)現(xiàn)還有一種更簡單的數(shù)組去重算法,使用了數(shù)組的filter方法,以下是代碼:
1 Array.prototype.unique = function(){ 2 return this.filter(function (currentValue, index, arr){ // 當(dāng)前元素 當(dāng)前元素索引 當(dāng)前元素屬于的數(shù)組 3 return index <= arr.indexOf(currentValue); 4 }); 5 }; 6 var array = [1,2,3,12,3,2,1,2,30]; 7 array.unique();?
?
--------------------------------------------------------------------------- 2019.1.17 Updates?---------------------------------------------------------------------------
今天發(fā)現(xiàn)一種更簡單的數(shù)組去重方法,利用了ES6的Set數(shù)據(jù)結(jié)構(gòu):
[...new Set(array)]簡直無敵,媽媽再也不用擔(dān)心面試官考我數(shù)據(jù)去重算法啦!
?
轉(zhuǎn)載于:https://www.cnblogs.com/kagol/p/5343173.html
總結(jié)
以上是生活随笔為你收集整理的使用JavaScript进行数组去重——一种高效的算法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android无线测试之—UiAutom
- 下一篇: .NET小细节