如果是数组中都是单一的数据类型,for + obj的效率最高
const uniq = arr => {
const res = [];
const obj = {};
for (let i = 0, length = arr.length; i < length; i++) {
if (!obj[arr[i]]) {
res.push(arr[i]);
obj[arr[i]] = 1;
}
}
return res;
}
数组内的数据类型如果有多种,for + Set的效率最高
const uniq = arr => {
const res = [];
const set = new Set();
for (let i = 0, length = arr.length; i < length; i++) {
if (!set.has(arr[i])) {
res.push(arr[i]);
set.add(arr[i])
}
}
return res;
}
Q: 为什么多类型用Set?
A: obj[1] === obj['1']