摘要:簡(jiǎn)介是中新的對(duì)象,今日偶然接觸發(fā)現(xiàn)利用它可以迅速為數(shù)組去重,只需要兩行代碼集合對(duì)象允許你存儲(chǔ)任意類(lèi)型的唯一值不能重復(fù),無(wú)論它是原始值或者是對(duì)象引用。
Set簡(jiǎn)介
Set是ES6中新的對(duì)象,今日偶然接觸,發(fā)現(xiàn)利用它可以迅速為數(shù)組去重,只需要兩行代碼!
使用示例集合(Set)對(duì)象允許你存儲(chǔ)任意類(lèi)型的唯一值(不能重復(fù)),無(wú)論它是原始值或者是對(duì)象引用。
var mySet = new Set(); mySet.add(1); mySet.add(5); mySet.add("some text"); mySet.has(1); // true mySet.has(3); // false, 3還沒(méi)有被添加到set中 mySet.has(5); // true mySet.has(Math.sqrt(25)); // true mySet.has("Some Text".toLowerCase()); // true mySet.size; // 3 mySet.delete(5); // 從set中移除5 mySet.has(5); // false, 5已經(jīng)被移除 mySet.size; // 2, 我們剛剛移除了一個(gè)值
簡(jiǎn)單來(lái)說(shuō),Set于Array的區(qū)別在于:Array中允許出現(xiàn)重復(fù)的元素,例如[1,2,2,3];而Set中的所有元素都是唯一的,只能是{1,2,3}。利用這一特性,我們就可以迅速地去掉數(shù)組中重復(fù)的元素。
數(shù)組去重廢話不多說(shuō),直接看代碼:
var arr = [1,2,2,3,4] // 需要去重的數(shù)組 var set = new Set(arr) // {1,2,3,4} var newArr = Array.from(set) // 再把set轉(zhuǎn)變成array console.log(newArr) // [1,2,3,4]
當(dāng)然數(shù)組去重的方法有許許多多,只是剛才被set爽到了,所以才寫(xiě)下這篇文章。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/82564.html
摘要:專(zhuān)題系列第三篇,講解各種數(shù)組去重方法,并且跟著寫(xiě)一個(gè)前言數(shù)組去重方法老生常談,既然是常談,我也來(lái)談?wù)?。它?lèi)似于數(shù)組,但是成員的值都是唯一的,沒(méi)有重復(fù)的值。 JavaScript 專(zhuān)題系列第三篇,講解各種數(shù)組去重方法,并且跟著 underscore 寫(xiě)一個(gè) unique API 前言 數(shù)組去重方法老生常談,既然是常談,我也來(lái)談?wù)劇?雙層循環(huán) 也許我們首先想到的是使用 indexOf 來(lái)循...
摘要:數(shù)組去重雙層循環(huán)使用雙層嵌套循環(huán)是最原始的方法用來(lái)存儲(chǔ)結(jié)果如果是唯一的,那么執(zhí)行完循環(huán),等于外層循環(huán)內(nèi)層循環(huán)當(dāng)和相等時(shí),跳出循環(huán)。否則說(shuō)明元素唯一,這時(shí)成立,將此元素添加到中。它類(lèi)似于數(shù)組,但是成員的值都是唯一的,沒(méi)有重復(fù)的值。 JavaScript數(shù)組去重 雙層循環(huán) 使用雙層嵌套循環(huán)是最原始的方法: var array = [a,b,a]; function unique(arra...
摘要:后面的方法中的源數(shù)組,都是指的這個(gè)。它類(lèi)似于數(shù)組,但是成員的值都是唯一的,沒(méi)有重復(fù)的值。這貌似是目前看來(lái)最完美的解決方案了。所以稍加改變?cè)磾?shù)組,給兩個(gè)空對(duì)象中加入鍵值對(duì)。 showImg(https://segmentfault.com/img/bVbpfjp?w=750&h=422); 前言 這是前端面試題系列的第 8 篇,你可能錯(cuò)過(guò)了前面的篇章,可以在這里找到: JavaScri...
摘要:面試中被問(wèn)到如果一個(gè)數(shù)組中有重復(fù)元素,用什么方法可以去重想了想貌似方法還不少,現(xiàn)在就總結(jié)一下。用集合實(shí)現(xiàn)輸出結(jié)果用集合實(shí)現(xiàn)數(shù)組類(lèi)型為包裝類(lèi)類(lèi)型數(shù)組類(lèi)型為基本數(shù)據(jù)類(lèi)型輸出結(jié)果可以看到不進(jìn)去除了重復(fù)數(shù)據(jù),而且還將數(shù)據(jù)進(jìn)行了排序。 面試中被問(wèn)到:如果一個(gè)數(shù)組中有重復(fù)元素,用什么方法可以去重?想了想貌似方法還不少,現(xiàn)在就總結(jié)一下。 1. 用List集合實(shí)現(xiàn) public static void...
摘要:工作過(guò)程中經(jīng)常會(huì)用到數(shù)組去重,用到的時(shí)候往往一時(shí)想不到好方法,所以這里來(lái)總結(jié)一下去重方法。和方法分別為添加成員方法和得到鍵值方法。因此,利用方法也可以實(shí)現(xiàn)數(shù)組的去重。 工作過(guò)程中經(jīng)常會(huì)用到數(shù)組去重,用到的時(shí)候往往一時(shí)想不到好方法,所以這里來(lái)總結(jié)一下去重方法。使用es6去重代碼很簡(jiǎn)單,而且ES6已經(jīng)相當(dāng)普及了。所以先來(lái)介紹一下es6中的方法。 1.ES6中Map結(jié)構(gòu)方法 function...
閱讀 3036·2023-04-25 20:22
閱讀 3350·2019-08-30 11:14
閱讀 2602·2019-08-29 13:03
閱讀 3191·2019-08-26 13:47
閱讀 3235·2019-08-26 10:22
閱讀 1279·2019-08-23 18:26
閱讀 628·2019-08-23 17:16
閱讀 1923·2019-08-23 17:01