第一種:Set()方法
Set本身是一個構造函數(shù),用來生成Set數(shù)據(jù)結構。
它類似于數(shù)組,但里面的成員是唯一的,不重復的。

第二種:indexOf()
indexOf()的意思:查找一個字符串中,第一次出現(xiàn)指定字符串的位置。
indexOf方法返回一個整數(shù)值,指出 string對象內子字符串的開始位置。如果沒有找到該字符串則返回-1。

第三種:includes 方法
includes? 方法會找到某一數(shù)組是否包含某元素 ?返回一個布爾值
includes? 也可以用來查詢字符串中是否包含某一個元素 ? 返回的也是一個布爾值

?第四種:slice方法去重
????????Array.slice() 截取數(shù)組,將截取到的數(shù)組返回,不改變原數(shù)組。
? ? ? ? slice(num1,num2)方法可以傳入兩個參數(shù)(二者均為數(shù)組的下標)
? ? ? ? num1:開始截取數(shù)組的位置(包含該位置的元素)
? ? ? ? num2:停止截取數(shù)組的位置(不包含該位置的元素),不傳,則默認值是數(shù)組的長度length。
(1)對象去重

(2)數(shù)組去重

第五種:雙重for循環(huán)

第六種:filter與indexOf結合
filter() 方法創(chuàng)建一個新的數(shù)組,新數(shù)組中的元素是通過檢查指定數(shù)組中符合條件的所有元素。

第七種:map方法
map是js中的一種數(shù)據(jù)結構,允許存儲鍵、值對,鍵和值可以是任意類型的數(shù)據(jù),如果其中存在的鍵,值會被替換
map()方法:返回一個新數(shù)組,不會修改原數(shù)組,且不會對空數(shù)組進行檢測。
Map中的一些常用方法
1、has():檢測map對象中鍵是否存在,存在返回true,不存在返回false。
2、set():為map對象添加鍵值對,方法里里面跟兩個參數(shù)(鍵,值),如果只傳入一個參數(shù),則值為undefine。
3、get():通過鍵來獲取對應的值。

第八種:reduce方法
?reduce()方法不僅僅用于數(shù)組求和,還可以滿足增刪查改、去重、平鋪數(shù)組等需求,當reduce()方法解決每層數(shù)組的迭代拼接時,就會起到去重的作用。
? ? ? ? prev:表示上一次調用回調時的返回值,或者初始值 init;
? ? ? ? cur:表示當前正在處理的數(shù)組元素;
? ? ? ? index:表示當前正在處理的數(shù)組元素的索引,若提供 init 值,則索引為0,否則索引為1;
? ? ? ? init:表示初始值。
? ? ? ? arr:表示原數(shù)組;
