数组去重,看这一篇就够了!

216 阅读1分钟

再也不会被面试官问倒辣!

一. Set

let res = [...new Set(arr)]

二. 利用Map或者对象字面量

        let map = new Map();
        let res = []

        arr.forEach(i => {
            if (!map.has(i)) {
                map.set(i, true);
                res.push(i)
            }
        })

三. filter方式,判断indexOf和索引值是否一样,那就是第一次出现

    let res = arr.filter((item, index) => {
            return arr.indexOf(item) === index
        })

四. reduce/循环 + includes/indexOf

        let res = arr.reduce((pre, cur) => {
            if (pre.indexOf(cur) === -1) pre.push(cur);
            return pre
        }, [])

        let res = arr.reduce((pre, cur) => {
            !pre.includes(cur) && pre.push(cur);
            return pre
        }, [])

五. 先用sort排序,但只针对number类型,就略略略辣


记录记录!