数组去重

new Set去重

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

双重循环去重 for

const handleRemoveRepeat = (arr) => {
    for (let i=0,len = arr.length; i < len; i++) {
        for (let j = i + 1; j < len; j++) {
            if (arr[i] === arr[j]) {
                arr.splice(j, 1);
                j--;
                len--;
            }
        }
    }
    return arr;
};

使用indexOf的去重

const handleRemoveRepeat1 = (arr) => {
    let repeatArr = [];
    for (let i = 0,len = arr.length ; i < len; i++)
        if (repeatArr.indexOf(arr[i]) === -1)  repeatArr.push(arr[i])
    return repeatArr;
}

使用includes的去重

const handleRemoveRepeat2 = (arr) => {
    let repeatArr = [];
    for (let i = 0,len = arr.length ; i < len; i++)
        if (!repeatArr.includes(arr[i])) repeatArr.push(arr[i])
    return repeatArr;
}

使用filter配合indexOf进行的去重过程,真的可以非常的简单且富含趣味性。

const handleRemoveRepeat3 = (arr) => arr.filter((item,index) => arr.indexOf(item,0) === index);

你可能感兴趣的:(数组去重)