一、使用 Set 来去重
Set 是一种叫做集合的数据结构
Set 的参数是iterable类型的数据, 比如 Array、String
let s = new Set([1,1,2,3]);
function unique(arr) {
return [...new Set(arr)];
}
let result = unique(arr);
console.log(result);
二、用 Array.reduce()
function unique(arr) {
let result = arr.reduce((accumulator, value) => {
if(!accumulator.includes(value)) {
accumulator.push(value);
}
return accumulator;
}, []);
return result;
}
let result = unique(arr);
console.log(result);
三、和用 reduce 一样的逻辑
- 用数组存
function unique(arr) {
let result = [];
arr.forEach(value => {
if(!result.includes(value)) result.push(value)
});
return result;
}
let result = unique(arr);
console.log(result);
- 用对象存
function unique(arr) {
let result = {};
arr.forEach(value => {
result[value] = value;
});
// return Object.keys(result); // 数字就转为字符串了
return Object.values(result);
}
let result = unique(arr);
console.log(result);