Sanakey

关于数组去重
数组去重的思路有很多,个人总结了一下常用的记住简单去重方法,供参考。
扫描右侧二维码阅读全文
18
2018/05

关于数组去重

数组去重的思路有很多,个人总结了一下常用的记住简单去重方法,供参考。

思路一

双重循环数组,依次比较前一个值与后面每一个值,相等就删除后面出现的值

// 数组去重
    var arr = [1, 2, 2, 4, 2];
    function unique(arr) {
        for (var i = 0; i < arr.length; i++) {
            for (var j = i + 1; j < arr.length; j++) {
                if (arr[i] == arr[j]) {
                    arr.splice(j, 1);
                    j--
                }
            }
        }
        return arr;
    }

思路二

定义一个新的空数组,遍历原数组,判断新数组中是否有当前循环的值,没有则将该值push进新数组

function unique(arr){
    let newArr = [];
    arr.forEach(item => {
        if (newArr.indexOf(item)===-1) {
            newArr.push(item)
        }
    });
    return newArr;
}

思路三

利用对象值的唯一性

function unique(arr){
    let obj = {};
    arr.forEach(item => {
        obj[item] = 1
    });
    
    return Object.keys(obj);
}

思路四

利用ES6新增的Set类型无重复字段的特性

function unique(arr){
    return [...new Set(arr)];
}
Last modification:November 20th, 2019 at 03:39 pm
如果觉得我的文章对你有用,请随意赞赏

Leave a Comment

marisa.png