Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >JavaScript数组去重方法

JavaScript数组去重方法

作者头像
越陌度阡
发布于 2022-11-27 09:34:00
发布于 2022-11-27 09:34:00
65800
代码可运行
举报
运行总次数:0
代码可运行

在写JavaScript代码的时候,经常会用需要给数组去重,常用的操作方法是,利用indexOf去目标数中反复查找,代码如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function repeat(arr){
    var result=[];
    for(var i=0;i<arr.length;i++){
        // 在result中如果找不到arr中当前元素
        if(result.indexOf(arr[i])==-1){
            // 才将当前元素压入result
            result.push(arr[i]);
        }
    };
    return result;
}

但是这种写法的性能不高,碰到较大的数组时,很耗时,所以一般会用hash的方法去给数组去重。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function repeat(arr){
    var hash={};
    var result=[];
    for(var i=0;i<arr.length;i++){
        if(hash[arr[i]]===undefined){
            result.push(arr[i]);
            hash[arr[i]]=1;
        }
    }
    return result;
}

通过用hash的方法给数组去重,性能可以提高很多倍的,大家可以自己试一下啊。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-07-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
JavaScript 数组去重的多种方法原理详解
数组去重,这是一个面试经常会遇见的问题,网上讲数组去重的文章也是特别的多,但是我们依旧来讲讲数组去重,这篇文章比较适合于接触过一段时间的JavaScript的初学者,希望这篇文章能给初学者带来一些帮助。
FEWY
2019/05/29
6610
JavaScript 数组去重的多种方法原理详解
javascript 7种常见方法实现数组去重
双重for(或while)循环是比较笨拙的方法,它实现的原理很简单:先定义一个包含原始数组第一个元素的数组,然后遍历原始数组,将原始数组中的每个元素与新数组中的每个元素进行比对,如果不重复则添加到新数组中,最后返回新数组;因为它的时间复杂度是O(n^2),如果数组长度很大,那么将会非常耗费内存
青梅煮码
2023/01/05
7170
JS数组去重!!!一篇不怎么靠谱的"深度"水文
数组去重,这是一个老梗了...今天我又拿出来说了... 我们在考虑全面一点的情况下,数组去重的实现,比如针对NaN,undefined,{}; 这其中涉及的知识点挺多,不信跟着走一波; 这里不考虑浏览器兼容性这些破问题,因为涉及ES5&6
CRPER
2018/08/28
6510
剑指 offer -JavaScript 版(第3期23-32题)
21.输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)
前端迷
2019/12/19
3140
javascript数组去重的N种方法
这段代码使用了循环嵌套,首先循环遍历数组中每一项,然后用每一项和当前项后面的数组元素比对,相同的话,将其从数组中删除,依次循环完成,达到去重目的。
挥刀北上
2019/08/06
9710
JavaScript之数组去重
hasOwnProperty > reduce + indexOf > includes > indexOf > Set
全栈开发Dream
2021/06/01
9540
JavaScript之数组去重
ECMAScript6 数组去重
数组去重这个问题无论是在面试当中,还是实际项目中,出现的频率都挺多的,而我们以往的解决方式,就是通过新建一个空的数组,通过indexOf()方法进行新数组和原数组的子元素比较,来得到一个没有重复子元素的新数组
Nian糕
2018/08/21
4040
ECMAScript6 数组去重
面试官在“逗”你系列:数组去重你会几种呀?
数组去重是一个老生常谈的话题,也是前端童鞋在面试时的一道高频题。本文将深入的探索数组去重的原理及实现,为各位小伙伴提供多种可以反手“调戏”面试官的解决方案。
胡哥有话说
2020/05/18
4210
经典面试题:数组去重
数组去重 数组去重作为js的经典面试题,比较考察js基础,在实际应用中也有较多的场景。 利用对象属性 function oSort( arr ) { var result = {}; var newArr = []; for (var i = 0 ; i < arr.length; i ++ ) { if (! result[arr[i]]) {
RobinsonZhang
2018/08/28
5050
9种JS数组去重的高阶方法思路,值得借鉴
一般的方法此处也不列举了,还是有很多的,如双层循环判断是否相等,或新建数组比较再push等等,需要注意的是,使用splice方法移除元素时,有可能会导致数组塌陷问题,需要处理一下。
前端达人
2021/06/16
1.4K0
JavaScript两种数组去重方法「建议收藏」
indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。当目标值存在数组时返回其下标,不存在时放回-1,因此我们可以利用这个方法对数组进行去重
全栈程序员站长
2022/09/12
3470
一个让我耳目一新的数组去重方法
这个方法比较常用,因为它可以去重基础数据类型组成的数组,也可以去重对象或数据类型数据组成的数组,如:
fastmock
2024/04/30
3230
js数组去重五种方法
今天来聊一聊JS数组去重的一些方法,包括一些网上看到的和自己总结的,总共5种方法(ES5)。
半指温柔乐
2019/03/06
2.6K0
如何用JavaScript进行数组去重
今天的文章和大家谈一谈如何用JavaScript进行数组去重,这是一道常见的面试(笔试)题,可以很好地考察出一个人的逻辑思维及边界考虑情况,希望此文能够帮助大家在解决类似问题时拓宽思路。据我到目前为止面试的情况,很少有人能在现场考虑很全,基本上的人都是浅尝辄止。 当然,“使用库中的一个函数就能去重”并不在本篇文章的讨论范围内,我们针对的是需要自己写代码的场景。考虑到实际情况,我们使用ES5(主要就用了indexOf方法,如果是更古老的环境,可以自己增加这段代码,或者使用ES5兼容库es5-sham.js)。
个推君
2018/03/21
1.1K0
如何用JavaScript进行数组去重
如何答一道惊艳面试官的数组去重问题?
思想: 双重 for 循环是比较笨拙的方法,它实现的原理很简单:先定义一个包含原始数组第一个元素的数组,然后遍历原始数组,将原始数组中的每个元素与新数组中的每个元素进行比对,如果不重复则添加到新数组中,最后返回新数组;因为它的时间复杂度是O(n^2),如果数组长度很大,效率会很低。
coder_koala
2019/12/27
1.4K0
如何答一道惊艳面试官的数组去重问题?
js关键词变色,数组打乱,数组去重的实现和封装
今天,把自己之前封装过的一部分小功能操作分享出现,都是一些可以说是比较常用,实现起来比较简单,代码又比较少的一些功能或操作,比如关键词变色,数组打乱,数组去重等。
守候i
2018/08/22
1.5K0
js关键词变色,数组打乱,数组去重的实现和封装
一文带你搞懂JavaScript数组去重问题
数组去重,最开始我的思路是这样:定义一个新数组,完后两层for循环,如果数据第一次出现,就push到新数组里,如果重复就break掉,利用j的值与res长度相等这一点来判断数据唯一,最后返回新数组就行了。
是乃德也是Ned
2022/08/04
2340
javascript数组去重set方法_js数组去重api
这是最简单的数组去重方法,实现思路:新建一新数组,传入要去重的数组,遍历该数组,若值不在新数组中则加入该数组;需要注意点:判断值是否在数组的方法“indexOf”是ECMAScript5 方法,IE8以下不支持,示例如下:
全栈程序员站长
2022/08/04
3K0
JS数组去重的6种算法实现以上就是为大家提供的6种JS数组去重的算法实现,希望对大家的学习有所帮助。
1.遍历数组法 最简单的去重方法,实现思路:新建一新数组,遍历传入数组,值不在新数组就加入该新数组中;注意点:判断值是否在数组的方法“indexOf”是ECMAScript5 方法,IE8以下不支持,需多写一些兼容低版本浏览器代码,源码如下: var arr = [1,3,5,7,9,1,9,5,9,3,5,11,13]; function unique1(array){ var newArr=[];//新建一个新数组 //遍历参数数组array for(var i=0;i<array.length;i
王小婷
2018/06/04
6.8K0
JavaScript 数组常见操作(一)
数组是 JavaScript 中常见数据类型之一,关于它的一些操作方法,我在这里做一下简单记录和总结。
编程三昧
2022/02/05
2850
JavaScript 数组常见操作(一)
相关推荐
JavaScript 数组去重的多种方法原理详解
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档