天天看點

js 去重

方法一:

這是我最先接觸到的去重,相信很多人也是最先接觸這個方法,這種方法運作時用到的循環太多了,效率太低,如果資料量少還行,如果是大量資料的話,那就隻能說呵呵了。

方法二:

這種是我比較喜歡用的,效率也不錯,先用sort排序,加一個臨時數組,然後循環周遊,将去重的數組和臨時數組末進行比較,不同就加入臨時數組。

方法三:

方法三雖然隻有一個for循環,但indexof函數會從頭檢索n數組,同樣效率不行。

方法四:

這種方法去重效率很快,但是有個很大的缺點,就是記憶體占用多。不推薦使用。

方法五:

這種方法和方法三一樣用到了indexof。

方法六:

這個不用說,用了正則,o(╯□╰)o,感覺好複雜,我也沒懂Σ( ° △ °|||)︴。

方法七:

這你是用到了hasOwnProperty,這種效率也不錯.

下面是我的測試代碼:

分别測試了10000和100000長的數組,測試結果如下:

方法一:  242ms(10000長度的)     2240ms(100000長度的)

方法二:  6ms                               39ms

方法三:  255ms                            2138ms

方法四:  4ms                                19ms

方法五:  416ms                             4492ms

方法六:  9ms                                 50ms

方法七:  2ms                                 8ms

我個人比較傾向于方法二、方法七。