js数组去重

61 阅读1分钟

一、使用 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);