七種JS實現(xiàn)數(shù)組去重的方式_第1頁
七種JS實現(xiàn)數(shù)組去重的方式_第2頁
七種JS實現(xiàn)數(shù)組去重的方式_第3頁
全文預覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第七種JS實現(xiàn)數(shù)組去重的方式注意:以上去方式對NaN和undefined類型去重也是有效的,是因為NaN和undefined都可以被存儲在Set中,NaN之間被視為相同的值(盡管在js中:NaN!==NaN)。

2.利用兩層循環(huán)+數(shù)組的splice方法

通過兩層循環(huán)對數(shù)組元素進行逐一比較,然后通過splice方法來刪除重復的元素。此方法對NaN是無法進行去重的,因為進行比較時NaN!==NaN。

functionremoveDuplicate(arr){

letlen=arr.length

for(leti=0;ilen;i++){

for(letj=i+1;jlen;j++){

if(arr[i]===arr[j]){

arr.splice(j,1)

len--//減少循環(huán)次數(shù)提高性能

j--//保證j的值自加后不變

returnarr

constresult=removeDuplicate(arr)

console.log(result)//[1,2,'abc',true,false,undefined,NaN,NaN]

3.利用數(shù)組的indexOf方法

新建一個空數(shù)組,遍歷需要去重的數(shù)組,將數(shù)組元素存入新數(shù)組中,存放前判斷數(shù)組中是否已經(jīng)含有當前元素,沒有則存入。此方法也無法對NaN去重。

indexOf()方法:返回調(diào)用它的String對象中第一次出現(xiàn)的指定值的索引,從fromIndex處進行搜索。如果未找到該值,則返回-1。

functionremoveDuplicate(arr){

constnewArr=[]

arr.forEach(item={

if(newArr.indexOf(item)===-1){

newArr.push(item)

returnnewArr//返回一個新數(shù)組

constresult=removeDuplicate(arr)

console.log(result)//[1,2,'abc',true,false,undefined,NaN,NaN]

4.利用數(shù)組的includes方法

此方法邏輯與indexOf方法去重異曲同工,只是用includes方法來判斷是否包含重復元素。

includes()方法:用來判斷一個數(shù)組是否包含一個指定的值,根據(jù)情況,如果包含則返回true,否則返回false。

functionremoveDuplicate(arr){

constnewArr=[]

arr.forEach(item={

if(!newArr.includes(item)){

newArr.push(item)

returnnewArr

constresult=removeDuplicate(arr)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論