今天學習一下陣列去重的幾種方法,雖然不全但是實用
方法一:
let arr=[1
,2,3
,5,4
,8,8
,4,8
,8,2
,2]function
chuanru
(arr)
}return newarr;
} console.
log(
chuanru
(arr));
<
/script>
使用了push與indexof進行去重
push() 方法可向陣列的末尾新增乙個或多個元素,並返回新的長度。
indexof() 方法可返回某個指定的字串值在字串中首次出現的位置。
如果沒有找到匹配的字串則返回 -1
原理
在便利陣列後,如果判斷其沒有相匹配的數值,則將其新增到新陣列中
方法二:
let arr=[1
,2,3
,5,4
,8,8
,4,8
,8,2
,2]function
chuanru
(arr))}
console.
log(
chuanru
(arr));
<
/script>
使用了filter與indexof去重
filter() 方法建立乙個新的陣列,新陣列中的元素是通過檢查指定陣列中符合條件的所有元素。
filter() 不會對空陣列進行檢測。
filter() 不會改變原始陣列。
indexof() 方法可返回某個指定的字串值在字串中首次出現的位置。
如果沒有找到匹配的字串則返回 -1
原理
運用filter方法直接過濾掉重複的數值.,
方法三:
let arr=[1
,2,3
,5,4
,8,8
,4,8
,8,2
,2]function
chuanru
(arr)}}
return arr
}console.
log(
chuanru
(arr));
<
/script>
這是雙層for迴圈加上splice去重
splice() 方法向/從陣列中新增/刪除專案,然後返回被刪除的專案。
原理
在寫第二層for迴圈時一定要帶上,上乙個引數加1,別寫成了j=1。在下面判斷時當arr[i]與arr[j]相等,則將arr陣列中後面乙個相同值刪除掉,最終得到全部不一樣值得陣列。一定要記得j–,因為splice會改變陣列長度。
方法四:
let arr=[1
,2,3
,5,4
,8,8
,4,2
,2]function
chuanru
(arr)
} newarr.
push
(arr[i])}
return newarr
}console.
log(
chuanru
(arr));
<
/script>
這是使用雙層for迴圈加上push進行去重
push() 方法可向陣列的末尾新增乙個或多個元素,並返回新的長度。
原理
這個方法其原理是在執行第二層for迴圈時,判斷arr[i]與arr[j]的值如果arr[i]與arr[j]相等時就會跳過接下來的迴圈,重新執行第一層迴圈,除非判斷其與後面的都不相等,才將其新增到新陣列中。
陣列去重的簡單方法
set物件允許你儲存任何型別的唯一值,無論是原始值或者是物件引用。function removerepeatelement arr 注意 要用array.from 來將set物件轉換成乙個真的陣列。function removerepeatelement arr 遍歷源陣列,判斷新陣列中有沒有源陣列...
去重簡單幾種方法
第一種 array unique 移除陣列中重複的值 input array a green red b green blue red result array unique input print r result 以上例程會輸出 array a green 0 red 1 blue 第二種 交換...
幾種陣列去重方法
使用es6中的set是最簡單的去重方法。var arr 1 1,true true true true,15 15,false false undefined,undefined,null null nan nan nan 0 0,a a function arr unique1 arr arr u...