摘要:現(xiàn)在要求去重下面這個(gè)數(shù)組測(cè)試重復(fù)重復(fù)方法一測(cè)試重復(fù)重復(fù)去重后測(cè)試重復(fù)是新加的集合集合中的值不會(huì)重復(fù)。歡迎大家一起討論提出新的去重方法。有任何錯(cuò)誤請(qǐng)?jiān)谠u(píng)論指出。
現(xiàn)在要求去重下面這個(gè)數(shù)組
[1, 2, 3, 3, 3, "0", "1", "2", "測(cè)試", "重復(fù)", "重復(fù)", NaN, NaN, false, false];
方法一:ES6 Set()
let arr = [1, 2, 3, 3, 3, "0", "1", "2", "測(cè)試", "重復(fù)", "重復(fù)", NaN, NaN, false, false]; arr = [...new Set(arr)]; //去重后: [ 1, 2, 3, "0", "1", "2", "測(cè)試", "重復(fù)", NaN, false ]
Set 是ES6新加的集合,集合中的值不會(huì)重復(fù)。 ...操作符 會(huì)將可遍歷對(duì)象,轉(zhuǎn)換為數(shù)組.
方法二:利用對(duì)象
let arr = [1, 2, 3, 3, 3, "0", "1", "2", "測(cè)試", "重復(fù)", "重復(fù)", NaN, NaN, false, false]; let obj ={}; let temp=[]; for( let i = 0; i < arr.length; i++ ) { let type= Object.prototype.toString.call(arr[i]);//不加類型 分不清 1 "1" if( !obj[ arr[i] +type] ) { temp.push( arr[i] ); obj[ arr[i]+ type ] =true;//這里給true 利于代碼閱讀和判斷。 如果給 0,"" ,false ,undefined 都會(huì)在if那里判斷為 false 不利于代碼閱讀 } } console.log(temp)//去重后: [ 1, 2, 3, "0", "1", "2", "測(cè)試", "重復(fù)", NaN, false ]
方法三:sort排序后 在去重
let arr = [1, 2, 3, 3, 3, "0", "1", "2", "測(cè)試", "重復(fù)", "重復(fù)", NaN, NaN, false, false]; arr = arr.sort(); let temp =[]; while(arr.length > 0) { if( Object.is(arr[0], arr[1]) ) {//Object.is() 用于比較2個(gè)值, 比===更靠譜 例如 Object.is(NaN,NaN) 會(huì)判斷true arr.shift(); }else{ temp.push( arr.shift() ); } }//此方法會(huì)清空原數(shù)組, 你可以復(fù)制個(gè)數(shù)組,在去進(jìn)行操作 console.log(temp)//去重后: [ "0", 1, "1", "2", 2, 3, NaN, false, "測(cè)試", "重復(fù)" ]
方法四:for in
let arr = [1, 2, 3, 3, 3, "0", "1", "2", "測(cè)試", "重復(fù)", "重復(fù)", NaN, NaN, false, false]; let temp =[]; for(let i = 0; i < arr.length; i++) { if( !temp.includes( arr[i]) ) {//includes 檢測(cè)數(shù)組是否有某個(gè)值 內(nèi)部調(diào)用Object.is() 利用判斷NaN temp.push(arr[i]); } } console.log(temp);//去重后: [ 1, 2, 3, "0", "1", "2", "測(cè)試", "重復(fù)", NaN, false ]
以上方法 在最新版本谷歌瀏覽器全部正常運(yùn)行; 建議大家都用谷歌瀏覽器~~
但是還是要用Babel去轉(zhuǎn)譯這些代碼 ,不然低級(jí)瀏覽器沒法運(yùn)行。
歡迎大家一起討論, 提出新的去重方法。
有任何錯(cuò)誤,請(qǐng)?jiān)谠u(píng)論指出。 謝謝大家。
劉志飛 2017.5.15
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/50778.html
摘要:現(xiàn)在要求去重下面這個(gè)數(shù)組測(cè)試重復(fù)重復(fù)方法一測(cè)試重復(fù)重復(fù)去重后測(cè)試重復(fù)是新加的集合集合中的值不會(huì)重復(fù)。歡迎大家一起討論提出新的去重方法。有任何錯(cuò)誤請(qǐng)?jiān)谠u(píng)論指出。 現(xiàn)在要求去重下面這個(gè)數(shù)組 [1, 2, 3, 3, 3, 0, 1, 2, 測(cè)試, 重復(fù), 重復(fù), NaN, NaN, false, false]; 方法一:ES6 Set() let arr = [1, 2, 3, 3, 3,...
此篇文章闡述了Python目錄去重的這些方法,原文中根據(jù)實(shí)例編碼推薦的十分詳盡。對(duì)大家學(xué)習(xí)培訓(xùn)和工作具有很強(qiáng)的參照參考意義,需用的小伙伴可以參考一下 請(qǐng)定義函數(shù),將列表[10,1,2,20,10,3,2,1,15,20,44,56,3,2,1]中的重復(fù)元素除去,寫出至少3種方法?! 》椒ㄒ唬豪眉先ブ亍 ist_1=[10,1,2,20,10,3,2,1,15,20,44,56,3,2,...
摘要:同行這么做使用實(shí)現(xiàn)圓形進(jìn)度條前端掘金在開發(fā)微信小程序的時(shí)候,遇到圓形進(jìn)度條的需求。實(shí)現(xiàn)也談數(shù)組去重前端掘金的數(shù)組去重是一個(gè)老生常談的話題了。百度前端技術(shù)學(xué)院自定義前端掘金一標(biāo)簽概念元素表示用戶界面中項(xiàng)目的標(biāo)題。 閑話圖片上傳 - 掘金作者:孫輝,美團(tuán)金融前端團(tuán)隊(duì)成員。15年畢業(yè)加入美團(tuán),相信技術(shù),更相信技術(shù)只是大千世界里知識(shí)的一種,個(gè)人博客: https://sunyuhui.com ...
摘要:同行這么做使用實(shí)現(xiàn)圓形進(jìn)度條前端掘金在開發(fā)微信小程序的時(shí)候,遇到圓形進(jìn)度條的需求。實(shí)現(xiàn)也談數(shù)組去重前端掘金的數(shù)組去重是一個(gè)老生常談的話題了。百度前端技術(shù)學(xué)院自定義前端掘金一標(biāo)簽概念元素表示用戶界面中項(xiàng)目的標(biāo)題。 閑話圖片上傳 - 掘金作者:孫輝,美團(tuán)金融前端團(tuán)隊(duì)成員。15年畢業(yè)加入美團(tuán),相信技術(shù),更相信技術(shù)只是大千世界里知識(shí)的一種,個(gè)人博客: https://sunyuhui.com ...
摘要:數(shù)組去重方法的總結(jié)前言在中數(shù)組是比較常用的,本文中總結(jié)了下數(shù)組去重的幾種常用方法,如有問題,請(qǐng)指正。 JavaScript數(shù)組去重方法的總結(jié) 前言 在JavaScript中數(shù)組是比較常用的,本文中總結(jié)了下數(shù)組去重的幾種常用方法,如有問題,請(qǐng)指正。 簡(jiǎn)單粗暴的一種,ES6中set方法: var arr = [1,2,2,3,3,4,5,5]; console.log([...new Se...
閱讀 1115·2021-11-16 11:45
閱讀 3134·2021-10-13 09:40
閱讀 723·2019-08-26 13:45
閱讀 1222·2019-08-26 13:32
閱讀 2181·2019-08-26 13:23
閱讀 920·2019-08-26 12:16
閱讀 2832·2019-08-26 11:37
閱讀 1763·2019-08-26 10:32