1. 双指针 + hash
function unique(arr) {
const map = {};
let l = 0;
let r = 0;
while (r < arr.length) {
if (!map[arr[r]]) {
arr[l++] = arr[r];
map[arr[r]] = true;
}
r++;
}
return arr.slice(0, l);
}
2. 使用数组的filter方法 + hash
function unique1(arr) {
const map = {};
return arr.filter((v) => {
if (!map[v]) {
map[v] = true;
return true;
}
return false;
});
}
3. 利用es6 Set数据结构的特性
const unique2 = arr => Array.from(new Set(arr));