JS之分析並輸出沒有重複元素的數組

JSON 技術 徐逸以軒 2017-07-16

昨天我們講了JS之分析用json獲得一個數組中重複元素及其個數,今天我們不找重複元素,而是輸出“乾乾淨淨”的數組。閒話少說,進入正題。

首先來個高興的,一步到位,一句話搞定。就是某些瀏覽器不支持。

就是ECMAScript6裡面的Array.from(new Set(arr));可以很方便很方便的輸出沒有重複元素的數組。字符串,數字,數字字符串均可。

JS之分析並輸出沒有重複元素的數組

ES6方法

JS之分析並輸出沒有重複元素的數組

結果

好是好,不支持的瀏覽器也白搭!

我們自己設計一個去重函數。思路:新建一個空數組,然後2次循環遍歷原數組和“空數組”,將出現一次的元素放新數組,出現多次的不放。輸出新數組即可。利用開閉原則。

這裡的難點是,第一次遍歷是遍歷原數組,第二次循環比較的其實是新(空)數組,其實就是一次次比較原數組的元素在新數組裡面還出現不,一旦出現就捨棄。

JS之分析並輸出沒有重複元素的數組

代碼

JS之分析並輸出沒有重複元素的數組

結果

內置查找數組元素索引方法indexOf+forEach

JS之分析並輸出沒有重複元素的數組

內置forEach+indexOf

除了以上,還可以利用sort先排序原數組,然後在排序基礎上前後比較哪些重複。

JS之分析並輸出沒有重複元素的數組

sort

reduce方法:對數組中的所有元素調用指定的回調函數。該回調函數的返回值為累積結果,並且此返回值在下一次調用該回調函數時作為參數提供。

利用回調函數,下一次的值是否在上一次累計的數組中,沒有就加入,有就剔除。

JS之分析並輸出沒有重複元素的數組

reduce

條條大路通羅馬,拿一個用就行了。

相關推薦

推薦中...