A-A+

数组去重方法总结

2018年10月08日 JavaScript 暂无评论 阅读 14 次

上次总结了数组相关方法,本次分享数组去重方法总结

数组去重方法总结

    var array = [1,2,2,3,3,4,5,6,7,8,8,9,0,0,0];
    // 1:哈希法:空间换时间
    function uniqueArrayHash (array) {
        var map = {},
            result = [],
            i,
            len = array.length;
        for (i = 0; i < len; i++) {
            if (!map[array[i]]) {
                map[array[i]] = true;
                result.push(array[i]);
            }
        }
        return result;
    }
    console.log('hash method');
    console.log(uniqueArrayHash(array));
    //2: indexOf()
    function uniqueArrayIndexof (array) {
        var i,
            result = [],
            len = array.length;
        for (i = 0; i < len; i++) {
            if (result.indexOf(array[i]) < 0) {
                result.push(array[i]);
            }
        }
        return result;
    }
    console.log('indexOf');
    console.log(uniqueArrayIndexof(array));
    //3: set();
    function uniqueArraySet (array) {
        //Set。它类似于数组,但是成员的值都是唯一的,没有重复的值
        return Array.from(new Set(array));
    }
    console.log('set');
    console.log(uniqueArraySet(array));
    //4: filter() + indexOf()
    function uniqueArrayFilterIndexof (array) {
        return array.filter(function (value, index, arr) {
            //indexOf 判断是否第一次出现
            return arr.indexOf(value) === index;
        })
    }
    console.log('filter + indexOf');
    console.log(uniqueArrayFilterIndexof(array));
标签:

给我留言

Copyright © web前端技术开发个人博客 保留所有权利.   Theme  Ality

用户登录