• 技术文章 >Web开发 >JavaScript

    js数组去重的方法有哪些?

    宋雪维宋雪维2020-12-21 16:10:00原创4572

    对于前端的开发人员来说,数据与数组的使用已经成为日常工作的一部分。而对于大量的数组重复问题,我们需要对数组进行去重。具有函数优先的轻量级解释性语言js也会面临着数组重复的情况。本文小编整理总结了js数组去重的三种方法:1、双层for循环嵌套,使用splice去重;2、建新数组,使用indexOf去重;3、ES6中使用Set去重。

    方法一:双层for循环嵌套,使用splice去重

    优点:兼容性好

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    <p style="line-height: normal;">function uniqueArr(arr){

     

             if(!Array.isArray(arr)){

     

                    alert("type error");

     

                    return;

     

                }

     

                for(let i=0;i<arr.length;i++){

     

                    for(let j=i+1;j<arr.length;j++){

     

                        if(arr[i] === arr[j]){

     

                            arr.splice(j,1);

     

                            j--;

     

                        }

     

                    }

     

                }

     

                return arr;

     

            }<br></p>

    方法二:建新数组,使用indexOf去重

    优点:简化一层循环

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    <p style="line-height: normal;">function unique(arr){

     

        var res = [];

     

        for (var i = 0, len = arr.length; i < len; i++) {

     

           var cur = arr[i];

     

            if(res.indexOf(cur) === -1) { // res中不包含cur

     

                res.push(cur);

     

            }

     

        }

     

        return res;

     

    } <br></p>

    方法三:ES6中使用Set去重

    Set函数可以接受一个数组(或类似数组的对象)作为参数,用来初始化。

    优点:成员的值都是唯一的,没有重复的值。

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    function uniqueArr(arr){

     

                if(!Array.isArray(arr)){

     

                    alert("type error");

     

                    return;

     

                }

     

                return [...new Set(arr)];

     

            }

    以上就是小编整理总结了js数组去重的三种方法,大家可以根据具体情况选择合适的方法哟~

    专题推荐:jsjavascript
    上一篇:angularjs双向绑定原理是什么? 下一篇:如何在js数组的指定位置添加元素?

    相关文章推荐

    • json格式化工具有哪些• json常用解析工具有哪些?• gson解析json数据的方法

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网