资讯专栏INFORMATION COLUMN

[Javascript]数组去重的三种实现方式

TZLLOG / 2414人阅读

摘要:方式使用获取并删除删除数组的第一个元素,判断这个元素是否还存在于数组中,如果存在则说明这个元素的是重复的如果不存在,进行操作方式建立一个哈希表,通过对象属性查询去除重复元素方式思路和方式类似,但是简洁很多来源个人博客

方式1:使用shift()获取并删除删除数组的第一个元素,判断这个元素是否还存在于数组中,如果存在则说明这个元素的是重复的;如果不存在,进行push()操作

function unique(a){
    if(Array.isArray(a)){
        var len = a.length,item;
        while(len--){
            item = a.shift();
            if(a.indexOf(item) === -1){
                a.push(item);
            }
        }
    }
    return a;
}

方式2:建立一个哈希表,通过对象属性查询去除重复元素

function unique(array){
    var hash = {},
        len = array.length,
        result = [],
        i;

    for(i = 0; i < len; i++){
        if(!hash[a[i]]){
            hash[a[i]] = true;
            result.push(a[i]);
        }
    }

    return result;
}

方式3:思路和方式2类似,但是简洁很多

function unique(arr) {
    var hash = {};
    return arr.filter(function (n) {
        hash[n] = (hash[n] || 0);
        return (++hash[n] <= 1);
    });
}
来源

个人博客

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/91210.html

相关文章

  • JS数组去重三种方法

    摘要:编写双重循环去重当出现相同的元素时,删除重复的元素哈希表形式查询对象是否存在当前元素属性借助方法查询空数组里面是否已经存在这个值,不存在则推入编写单元测试输出通过来实现是比较优雅的姿势。 编写uniqueArray.js var Unique = { /** * 双重循环去重 * @param arr * @returns {*} */ ...

    hikui 评论0 收藏0
  • 思维导图整理大厂面试高频数组补充1: 最接近的三数之和 和 三数之和 的两个不同之处, 力扣16

    摘要:此专栏文章是对力扣上算法题目各种方法的总结和归纳整理出最重要的思路和知识重点并以思维导图形式呈现当然也会加上我对导图的详解目的是为了更方便快捷的记忆和回忆算法重点不用每次都重复看题解毕竟算法不是做了一遍就能完全记住的所 ...

    longmon 评论0 收藏0
  • javascript 数组重的6种思路

    摘要:但是这并不妨碍我们从思维拓展的角度出发,看看去重可以用几种思路去实现。首先是常规的双层循环比对的思路实现定义一个变量表示当前元素在中是否存在。依次对中的元素和原数组元素进行比对。重点是保证碰撞的几率小到比中大奖还小就可以了。 前端在日常开发中或多或少都会碰到有对数据去重的需求,实际上,像是lodash这些工具库已经有成熟完备的实现,并且可以成熟地运用于生产环境。但是这并不妨碍我们从思维...

    AlphaWallet 评论0 收藏0
  • JavaScript专题之数组去重

    摘要:专题系列第三篇,讲解各种数组去重方法,并且跟着写一个前言数组去重方法老生常谈,既然是常谈,我也来谈谈。它类似于数组,但是成员的值都是唯一的,没有重复的值。 JavaScript 专题系列第三篇,讲解各种数组去重方法,并且跟着 underscore 写一个 unique API 前言 数组去重方法老生常谈,既然是常谈,我也来谈谈。 双层循环 也许我们首先想到的是使用 indexOf 来循...

    fsmStudy 评论0 收藏0
  • 数组重的JavaScript实现

    摘要:主要用到数组的方法。第一种方式是判断数组中的第一索引号等于参数索引号,一般来说,如果数组元素重复,除第一个元素外,所有重复元素的索引和该元素对应的第一索引是不同的。 1.最简方法 创建一个空的新数组,依次检查旧数组的值是否存在于新数组中,如果不存在就push进去。主要用到数组的indexOf方法。 function arrUnique(arr){ ...

    Imfan 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<