首頁>Club>
陣列中包含陣列,Object,undefined,null,function等等一系列複合型別,請問javascript怎麼實現去重?
7
回覆列表
  • 1 # 再者未來

    以前我們總看三大去重方式彙總啊,五大去重方式彙總啊。有時候為了方便使用,還要儲存好幾篇文章。

    這次,一篇就足夠你用的了!

    Methods 1:

    思路:先定義一個“新陣列”,並存放“源陣列”(待去重的陣列,以下簡稱源陣列)的第一個元素,然後將源陣列和新陣列的元素一一對比,若不同則存放在新陣列中。

    Methods 2:

    思路:先將源陣列排序,在與相鄰的進行比較,如果不同則存入新陣列。

    Methods 3:

    思路:利用物件屬性存在的特性,如果沒有該屬性則存入新陣列。

    Methods 4:

    思路:利用陣列的indexOf下標屬性來查詢。

    Methods 5:

    思路:利用陣列原型物件上的includes方法。

    Methods 6:

    思路:利用陣列原型物件上的 filter 和 includes方法。

    Methods 7:

    思路:利用陣列原型物件上的 forEach 和 includes方法。

    Methods 8:

    思路:利用陣列原型物件上的 splice 方法。

    Methods 9:

    思路:利用陣列原型物件上的 lastIndexOf 方法。

    Methods 10:

    思路:利用 ES6的set 方法。

    進階篇:畫龍點睛,一行程式碼搞定

    Methods 10_1:

    思路:利用ES6拓展運算子(...)內部使用for...of迴圈,以及Set成員值都是唯一的特性

    Methods 10_2:

    思路:利用陣列原型物件上的 filter函式以及ES6的Map物件儲存鍵值對。任何值(物件或者原始值) 都可以作為一個鍵或一個值。

  • 中秋節和大豐收的關聯?
  • 為什麼做生意要懂得心理學?