建立乙個新陣列,然後迴圈遍歷要去重的陣列,每次判斷新陣列不包含舊陣列的值時(新陣列用indexof方法檢索舊陣列的值返回結果等於-1)將該值加入新陣列。
let oldarr =[1
,2,3
,4,5
,5,6
,7,8
,2,3
];let newarr =
unique
(oldarr)
;function
unique
(arr)
}return hash;
}
與第一種方法類似,先遍歷,然後判斷當前陣列的第i項在陣列中第一次出現的位置是否與i相等,不是則說明重複,忽略,不加入新陣列。
let oldarr =[1
,2,3
,4,5
,5,6
,7,8
,2,3
];let newarr =
unique
(oldarr)
;function
unique
(arr)
}return hash;
}
對陣列進行排序後,將新陣列的最後乙個值與舊陣列的當前值進行比較,如果相等說明重複,不相等則新增至新陣列。
function
unique
(arr)
}return hash;
}
set型別:es6提供了新的資料結構set。它類似於陣列,但是成員的值都是唯一的,沒有重複的值。
set本身是乙個建構函式,用來生成set資料結構。
所以我們可以直接用set來處理陣列,但是處理完後可以用array.form方法或者擴充套件函式把它重新轉回陣列,不然得到的是set型別,對於一些有型別判斷的地方是不通過的。
let oldarr =[1
,2,3
,4,5
,5,6
,7,8
,2,3
];let newarr =
newset
(oldarr)
; console.
log(newarr)
; console.
log(newarr instanceof
array);
// 此時是set型別,不是array
js陣列去除重複資料
1 遍歷陣列法 建立乙個新陣列,然後迴圈遍歷要去重的陣列,每次判斷新陣列不包含舊陣列的值時 新陣列用indexof方法檢索舊陣列的值返回結果等於 1 將該值加入新陣列。let oldarr 1,2,3,4,5,5 6,7,8,2,3 let newarr unique oldarr function...
去除陣列重複資料
原始陣列 1,2,1,2,3,4,5 結果陣列 1,2,3,4,5 函式 function removesame arr for var i 0 i 4.過程 1 第一輪 i 0 i 7 i j 1 j 7 i 0,j 1,1 2不等,j 1.i 0 j 2,1 1相等 去除第乙個 1,陣列長度變為...
去除重複數
這是一道外企演算法的面試題,前提是不允許使用util包之外的類,即任何集合類都不允許使用。寫出的演算法效率越高,此題得分越高,大家可以試一下。題目是輸入一串已經排序好的陣列,輸出消除重複數之後的陣列。如 輸入 輸出 消除重複數 已經排序好的陣列 author fangtengfei date 201...