JavaScript幾種數(shù)組去重方法

學(xué)習(xí)了ES6之后翅睛,接觸了2種更為簡潔的方法

方法一:

functionunique1(arr) {

//定義常量 res,值為一個(gè)Map對象實(shí)例

constres=newMap();

//返回arr數(shù)組過濾后的結(jié)果鸣峭,結(jié)果為一個(gè)數(shù)組

//過濾條件是酥艳,如果res中沒有某個(gè)鍵爬骤,就設(shè)置這個(gè)鍵的值為1

returnarr.filter((a) => !res.has(a) &&res.set(a,1))

}

這個(gè)方法主要是利用了ES6的Map數(shù)據(jù)結(jié)構(gòu)的特性和數(shù)組的filter()方法。

方法二:

functionunique2(arr) {

//通過Set對象霞玄,對數(shù)組去重,結(jié)果又返回一個(gè)Set對象

//通過from方法惰爬,將Set對象轉(zhuǎn)為數(shù)組

returnArray.from(newSet(arr));

}

這個(gè)方法主要是利用了ES6的Set數(shù)據(jù)結(jié)構(gòu)和數(shù)組的from()方法惫企。

甚至還可以這么寫......

...new Set(array)

這些都是ES6的新特性帶來的簡潔。

還有一種是利用includes()方法實(shí)現(xiàn):

方法三:

functionunique3(arr) {

letnewarr= [];

for(leti=0;i

if(!newarr.includes(arr[i])){

newarr.push(arr[i]);

}

}

returnnewarr;

}

很好懂丛版,不作解釋。

利用json實(shí)現(xiàn)數(shù)組去重

方法四:

Array.prototype.unique=function() {

letkey= {};? ?//利用json鍵值唯一的原理實(shí)現(xiàn)去重

letnewarr= [];??//存放新的不重復(fù)的數(shù)組

letlen=this.length;? ?//記錄重復(fù)數(shù)組的長度页畦,提升性能

for(leti=0;i

lett=this[i];

if(key[t] ||t===undefined)continue;? ?

? ? ? ? ? ?//json的鍵值不重復(fù)研儒,唯一

????????????假如 key[1]存在的話,也就說明好芭,1已經(jīng)存在不重復(fù)的數(shù)組中了。

????????????如果key里面存在的話跳出本次循環(huán)

key[t] =t;

? ? ? ?//給key賦值栓撞,賦值后碗硬,下次if判斷的時(shí)候就會跳過,就不會再賦值恩尾,這就實(shí)現(xiàn)了去重。

? ? ? ?只有key里面不存在的時(shí)候才會添加到新的數(shù)組中木人。

newarr.push(t);

}

returnnewarr;

};

當(dāng)然還有很多方法,歡迎討論醒第。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市形病,隨后出現(xiàn)的幾起案子霞幅,更是在濱河造成了極大的恐慌,老刑警劉巖司恳,帶你破解...
    沈念sama閱讀 206,482評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件扔傅,死亡現(xiàn)場離奇詭異,居然都是意外死亡猎塞,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評論 2 382
  • 文/潘曉璐 我一進(jìn)店門鹏往,熙熙樓的掌柜王于貴愁眉苦臉地迎上來骇塘,“玉大人,你說我怎么就攤上這事款违。” “怎么了哄辣?”我有些...
    開封第一講書人閱讀 152,762評論 0 342
  • 文/不壞的土叔 我叫張陵赠尾,是天一觀的道長。 經(jīng)常有香客問我气嫁,道長,這世上最難降的妖魔是什么崖面? 我笑而不...
    開封第一講書人閱讀 55,273評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮巫员,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘赶掖。我一直安慰自己财异,他們只是感情好唱遭,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,289評論 5 373
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著拷泽,像睡著了一般。 火紅的嫁衣襯著肌膚如雪拆吆。 梳的紋絲不亂的頭發(fā)上脂矫,一...
    開封第一講書人閱讀 49,046評論 1 285
  • 那天,我揣著相機(jī)與錄音庭再,去河邊找鬼。 笑死颅围,一個(gè)胖子當(dāng)著我的面吹牛恨搓,可吹牛的內(nèi)容都是我干的院促。 我是一名探鬼主播斧抱,決...
    沈念sama閱讀 38,351評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼辉浦,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了盏浙?” 一聲冷哼從身側(cè)響起荔茬,我...
    開封第一講書人閱讀 36,988評論 0 259
  • 序言:老撾萬榮一對情侶失蹤竹海,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后斋配,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,476評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡坏瞄,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,948評論 2 324
  • 正文 我和宋清朗相戀三年甩卓,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片缀棍。...
    茶點(diǎn)故事閱讀 38,064評論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡机错,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出弱匪,到底是詐尸還是另有隱情,我是刑警寧澤萧诫,帶...
    沈念sama閱讀 33,712評論 4 323
  • 正文 年R本政府宣布财搁,位于F島的核電站,受9級特大地震影響尖奔,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜提茁,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,261評論 3 307
  • 文/蒙蒙 一茴扁、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦毁习、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至嫁艇,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間步咪,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評論 1 262
  • 我被黑心中介騙來泰國打工纯丸, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留静袖,地道東北人俊扭。 一個(gè)月前我還...
    沈念sama閱讀 45,511評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像萨惑,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子庸蔼,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,802評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 2019.08.02補(bǔ):對象數(shù)組建議直接循環(huán)然后使用工具庫(lodash)的深比較姐仅,評論里也有指出,文章的方法有些...
    始悔不悟閱讀 60,884評論 13 26
  • Javascript有很多數(shù)組的方法劳翰,有的人有W3C的API馒疹,還可以去MDN上去找佳簸,但是我覺得API上說的不全颖变,M...
    頑皮的雪狐七七閱讀 4,063評論 0 6
  • 好像沒有不煩惱的時(shí)候听想。正處在這樣一個(gè)年紀(jì)里疯特,遇見的每一件不順心的事都是煩惱事。私以為是一個(gè)心很大的人漓雅,雞毛蒜皮的小...
    王曉妹的簡書閱讀 187評論 0 0
  • 小沖說:年輕的女孩子,第一眼抱冷,更能討得男子的青睞。無論是工作還是交友赵讯,為什么男人會更喜歡年輕的女孩子呢?難道僅僅是...
    木風(fēng)十四閱讀 739評論 0 1
  • 近來困边翼,也累鸣剪。 雜事纏心 然而,無能睡筐骇。 不是不能,不能偏主觀铛纬,是責(zé)任,不情愿告唆。無能是能力,無能為力悔详。 或許是病镊屎。...
    藍(lán)騁閱讀 139評論 0 0