实现去重并排序(手写系列)

80 阅读1分钟

ES6去重并排序

//Es6 数字+英文
let newArr = [...new Set(arr)].sort((a,b)=>{return a.charCodeAt(0)-b.charCodeAt(0)})

Array.from方法

可以将Set结构转换为数组结果,而我们知道set结果是不重复的数据集,因此能够达到去重的目的

function unique(arr) {
    return Array.from(new Set(arr))
}

Map

Map 对象保存键值对,任何值(对象或者原始值) 都可以作为一个键或一个值。

function unique(arr) {
    const res = new Map();
    return arr.filter((a) => !res.has(a) && res.set(a, 1))
}

indexOf方法去重

function unique(arr) {
    let res = []
    for (let i = 0; i < arr.length; i++) {
        if (res.indexOf(arr[i]) === -1) {
            res.push(arr[i])
        }
    }
    return res
}

相邻方法去重

function unique(arr) {
    arr = arr.sort()
    let res = []
    for (let i = 0; i < arr.length; i++) {
        if (arr[i] !== arr[i-1]) {
            res.push(arr[i])
        }
    }
    return res
}