- 使用 Set
[...new Set(array)]
- 使用 Map,缺点是兼容性差了一点
const uniq = function (array) {
let map = new Map()
for (let i = 0; i < array.length; i++) {
let number = array[i] // 1 ~ 3
if (number === undefined) { continue }
if (map.has(number)) {
continue
}
map.set(number, true)
}
return [...map.keys()]
}
- 使用 hash
const uniq = function (array) {
let hash = {};
let newArray = [];
for (let i = 0; i < array.length; i++) {
if (!hash[array[i]]) {
newArray.push(array[i]);
hash[array[i]] = true;
}
}
return newArray;
}