js数组去重

佐手、 提交于 2020-01-07 15:59:54

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

//数组去重
var testArray = [1,2,1,1,1];
//双重for循环
function unique2For(array) {
    var res = [];
    for(var i=0, arrayLen = array.length;i<arrayLen; i++) {
        for(var j=0, resLen = res.length;j<resLen; j++) {
            if(array[i] === res[j]) {
                break;
            }
        }
        if(j === resLen) {
            res.push(array[i]);
        }
    }
}

//indexof

function uniqueUseIndexOf(array) {
    var res = [];
    for(var i=0,arrlen = array.length;i<arrlen;i++) {
        var current = array[i];
        if(res.indexOf(current) === -1) {
            res.push(current);
        }
    }
}

//es5 filter

function uniqueUseFilter(array) {
    var res  = array.filter(function (item,index,array) {
        return array.indexOf(item) === index;
    })
    return res;
}

//es6 ...new set(array)

function uniqueUseSet(array) {
    return Array.from(new Set(array))
    return [...new Set(array)];
}

var uniqueUseSet = (array) => [...new Set(array)]

//map

function uniqueUseMap(array) {
    const map = new Map();
    return array.filter((a) => {
        return !map.has(a) && map.set(a,1)
    })
}

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!