這篇文章主要介紹了es6如何刪除數(shù)組中的相同元素的相關知識,內(nèi)容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇es6如何刪除數(shù)組中的相同元素文章都會有所收獲,下面我們一起來看看吧。
為鄂溫克等地區(qū)用戶提供了全套網(wǎng)頁設計制作服務,及鄂溫克網(wǎng)站建設行業(yè)解決方案。主營業(yè)務為網(wǎng)站設計制作、成都網(wǎng)站建設、鄂溫克網(wǎng)站設計,以傳統(tǒng)方式定制建設網(wǎng)站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
刪除方法:1、利用Map對象和數(shù)組的filter方法,語法“function unique(arr) {const res = new Map();return arr.filter((a) => !res.has(a) && res.set(a, 1))}”;2、利用Set對象和數(shù)組的Array.from方法;3、利用Set對象和擴展運算符“…”;4、利用reduce()。
第一種: 利用Map對象和數(shù)組的filter方法
貼上相關代碼
打印后的結果
通過打印我們發(fā)現(xiàn),確實實現(xiàn)了我們想要的效果。那么下面簡單來解釋一下。
1.Map對象是ES6提供的一個新的數(shù)據(jù)結構,其中has的辦法是返回一個布爾值,表示某個值是否存在當前的Mp對象之中,set的辦法是給Map對象設置key/value。
2.filter() 方法創(chuàng)建一個新的數(shù)組,新數(shù)組中的元素是通過檢查指定數(shù)組中符合條件的所有元素。
所以說,Map對象結合filter方法可以達到數(shù)組去重的效果~
第二種:利用Set對象和數(shù)組的Array.from方法
同樣貼上相關代碼片段
打印運行后的結果
簡單來說,第二種方法比第一種還簡單。同樣來簡單解釋一下。
1、Set是ES6新提供的數(shù)據(jù)結構,類似于數(shù)組,但是本身沒有重復值。
2、Array.from方法用于將兩類對象轉(zhuǎn)為真正的數(shù)組:類似數(shù)組的對象(array-like object)和可遍歷(iterable)的對象(包括 ES6 新增的數(shù)據(jù)結構 Set 和 Map)。
所以set結合Array.from同樣可以達到數(shù)組去重的效果。不過需要注意的是,主流瀏覽器像Chrome,Firfox,Opera,Safari,包括微軟的Edge,都是支持的,但是唯獨IE系列不支持。
第三種:利用Set+擴展運算符 …
第三種辦法可以說是更簡單
貼上相關代碼
打印后運行的結果
第四種:利用reduce
reduce方法用于縮減數(shù)組元素,并根據(jù)你傳遞的縮減處理函數(shù)將它們組合成最終的數(shù)組。
對于我們的例子,我們的縮減處理函數(shù)(reducer)會檢查最終的數(shù)組里是否包含了某個元素。如果沒有包含,會把該元素推入此數(shù)組里。否則,會忽略此元素。函數(shù)最后返回最終的數(shù)組。
縮減過程不太容易理解,讓我們分解一下,看看輸出結果:
如下是console.log的輸出結果:
關于“es6如何刪除數(shù)組中的相同元素”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對“es6如何刪除數(shù)組中的相同元素”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道。