日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

使用JavaScript进行数组去重——一种高效的算法

發(fā)布時間:2025/3/15 javascript 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用JavaScript进行数组去重——一种高效的算法 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

  最近比較忙,沒時間更新博客,等忙完這陣子會整理一篇使用AngularJS構(gòu)建一個中型的單頁面應(yīng)用(SPA)的文章,盡情期待!先占個坑。

  數(shù)組去重的算法有很多種,以下是一種。

  思路如下:

  • 定義一個空的對象obj;
  • 循環(huán)數(shù)組arr,判斷obj[arr[i]]是否為false,如果是則將該數(shù)組元素放到result中,并且將obj[arr[i]]置為true;
  • obj[arr[0]]肯定為false,因為obj為空,arr[0]將被放到result中,并且obj[arr[0]]被置為true;
  • 循環(huán)的過程中如果有哪個元素(比如第n個元素)和arr[0]相同,那么obj[arr[n]]將和obj[arr[0]]相同(都為true),因為key相同,value必定也相同。
  •   如此便可去重。

      代碼如下:

    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)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。