摘要:現在要求去重下面這個數組測試重復重復方法一測試重復重復去重后測試重復是新加的集合集合中的值不會重復。歡迎大家一起討論提出新的去重方法。有任何錯誤請在評論指出。
現在要求去重下面這個數組
[1, 2, 3, 3, 3, "0", "1", "2", "測試", "重復", "重復", NaN, NaN, false, false];
方法一:ES6 Set()
let arr = [1, 2, 3, 3, 3, "0", "1", "2", "測試", "重復", "重復", NaN, NaN, false, false]; arr = [...new Set(arr)]; //去重后: [ 1, 2, 3, "0", "1", "2", "測試", "重復", NaN, false ]
Set 是ES6新加的集合,集合中的值不會重復。 ...操作符 會將可遍歷對象,轉換為數組.
方法二:利用對象
let arr = [1, 2, 3, 3, 3, "0", "1", "2", "測試", "重復", "重復", 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 都會在if那里判斷為 false 不利于代碼閱讀 } } console.log(temp)//去重后: [ 1, 2, 3, "0", "1", "2", "測試", "重復", NaN, false ]
方法三:sort排序后 在去重
let arr = [1, 2, 3, 3, 3, "0", "1", "2", "測試", "重復", "重復", NaN, NaN, false, false]; arr = arr.sort(); let temp =[]; while(arr.length > 0) { if( Object.is(arr[0], arr[1]) ) {//Object.is() 用于比較2個值, 比===更靠譜 例如 Object.is(NaN,NaN) 會判斷true arr.shift(); }else{ temp.push( arr.shift() ); } }//此方法會清空原數組, 你可以復制個數組,在去進行操作 console.log(temp)//去重后: [ "0", 1, "1", "2", 2, 3, NaN, false, "測試", "重復" ]
方法四:for in
let arr = [1, 2, 3, 3, 3, "0", "1", "2", "測試", "重復", "重復", NaN, NaN, false, false]; let temp =[]; for(let i = 0; i < arr.length; i++) { if( !temp.includes( arr[i]) ) {//includes 檢測數組是否有某個值 內部調用Object.is() 利用判斷NaN temp.push(arr[i]); } } console.log(temp);//去重后: [ 1, 2, 3, "0", "1", "2", "測試", "重復", NaN, false ]
以上方法 在最新版本谷歌瀏覽器全部正常運行; 建議大家都用谷歌瀏覽器~~
但是還是要用Babel去轉譯這些代碼 ,不然低級瀏覽器沒法運行。
歡迎大家一起討論, 提出新的去重方法。
有任何錯誤,請在評論指出。 謝謝大家。
劉志飛 2017.5.15
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/82983.html
摘要:現在要求去重下面這個數組測試重復重復方法一測試重復重復去重后測試重復是新加的集合集合中的值不會重復。歡迎大家一起討論提出新的去重方法。有任何錯誤請在評論指出。 現在要求去重下面這個數組 [1, 2, 3, 3, 3, 0, 1, 2, 測試, 重復, 重復, NaN, NaN, false, false]; 方法一:ES6 Set() let arr = [1, 2, 3, 3, 3,...
此篇文章闡述了Python目錄去重的這些方法,原文中根據實例編碼推薦的十分詳盡。對大家學習培訓和工作具有很強的參照參考意義,需用的小伙伴可以參考一下 請定義函數,將列表[10,1,2,20,10,3,2,1,15,20,44,56,3,2,1]中的重復元素除去,寫出至少3種方法?! 》椒ㄒ唬豪眉先ブ亍 ist_1=[10,1,2,20,10,3,2,1,15,20,44,56,3,2,...
摘要:同行這么做使用實現圓形進度條前端掘金在開發微信小程序的時候,遇到圓形進度條的需求。實現也談數組去重前端掘金的數組去重是一個老生常談的話題了。百度前端技術學院自定義前端掘金一標簽概念元素表示用戶界面中項目的標題。 閑話圖片上傳 - 掘金作者:孫輝,美團金融前端團隊成員。15年畢業加入美團,相信技術,更相信技術只是大千世界里知識的一種,個人博客: https://sunyuhui.com ...
摘要:同行這么做使用實現圓形進度條前端掘金在開發微信小程序的時候,遇到圓形進度條的需求。實現也談數組去重前端掘金的數組去重是一個老生常談的話題了。百度前端技術學院自定義前端掘金一標簽概念元素表示用戶界面中項目的標題。 閑話圖片上傳 - 掘金作者:孫輝,美團金融前端團隊成員。15年畢業加入美團,相信技術,更相信技術只是大千世界里知識的一種,個人博客: https://sunyuhui.com ...
摘要:數組去重方法的總結前言在中數組是比較常用的,本文中總結了下數組去重的幾種常用方法,如有問題,請指正。 JavaScript數組去重方法的總結 前言 在JavaScript中數組是比較常用的,本文中總結了下數組去重的幾種常用方法,如有問題,請指正。 簡單粗暴的一種,ES6中set方法: var arr = [1,2,2,3,3,4,5,5]; console.log([...new Se...
閱讀 993·2021-11-15 18:06
閱讀 2362·2021-10-08 10:04
閱讀 2647·2019-08-28 18:03
閱讀 892·2019-08-26 13:42
閱讀 1913·2019-08-26 11:31
閱讀 2417·2019-08-23 17:13
閱讀 916·2019-08-23 16:45
閱讀 2049·2019-08-23 14:11