JavaScript中数组去重的5种方法是什么


本文摘自PHP中文网,作者青灯夜游,侵删。

数组去重的5种方法:1、用“[...new Set(arr)]”语句去重;2、用“Array.from(new Set(arr))”语句去重;3、利用indexOf()去重;4、利用includes()去重;5、利用filter()去重。

本教程操作环境:windows7系统、javascript1.8.5版、Dell G3电脑。

数组去重的方法

1、[...new Set(arr)]

1

2

const arr = [1, 2, 3, 2, 3];

[...new Set(arr)]; // [1, 2, 3]

这里是通过 ES6 的展开语法将 Set 对象转换成数组;

2、Array.from(new Set(arr))

1

2

const arr = [1, 2, 3, 2, 3];

Array.from(new Set(arr)); // [1, 2, 3]

由于 Set 中的元素是唯一的,无论是原始值或者是对象引用,所以可以通过将数组转换成 Set 对象来实现去重

Array.from方法可以将 Set 对象转换成数组

3、利用indexOf去重

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

function unique(arr) {

    if (!Array.isArray(arr)) {

        console.log('type error!')

        return

    }

    var array = [];

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

        if (array .indexOf(arr[i]) === -1) {

            array .push(arr[i])

        }

    }

    return array;

}

var arr = [1,1,'true','true',true,true,15,15,false,false, undefined,undefined, null,null, NaN, NaN,'NaN', 0, 0, 'a', 'a',{},{}];

console.log(unique(arr))

   // [1, "true", true, 15, false, undefined, null, NaN, NaN, "NaN", 0, "a", {…}, {…}]  //NaN、{}没有去重

新建一个空的结果数组,for 循环原数组,判断结果数组是否存在当前元素,如果有相同的值则跳过,不相同则push进数组。

4、利用includes

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

function unique(arr) {

    if (!Array.isArray(arr)) {

        console.log('type error!')

        return

    }

    var array =[];

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

            if( !array.includes( arr[i]) ) {//includes 检测数组是否有某个值

                    array.push(arr[i]);

              }

    }

    return array

}

var arr = [1,1,'true','true',true,true,15,15,false,false, undefined,undefined, null,null, NaN, NaN,'NaN', 0, 0, 'a', 'a',{},{}];

    console.log(unique(arr))

    //[1, "true", true, 15, false, undefined, null, NaN, "NaN", 0, "a", {…}, {…}]     //{}没有去重

5、利用filter

1

2

3

4

5

6

7

8

9

function unique(arr) {

  return arr.filter(function(item, index, arr) {

    //当前元素,在原始数组中的第一个索引==当前索引值,否则返回当前元素

    return arr.indexOf(item, 0) === index;

  });

}

    var arr = [1,1,'true','true',true,true,15,15,false,false, undefined,undefined, null,null, NaN, NaN,'NaN', 0, 0, 'a', 'a',{},{}];

        console.log(unique(arr))

//[1, "true", true, 15, false, undefined, null, "NaN", 0, "a", {…}, {…}]

【相关推荐:javascript学习教程

以上就是JavaScript中数组去重的5种方法是什么的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

vue-cli 3.x 自动部署项目至服务器的方法介绍(代码)

javascript数组怎么判断是否存在某元素

javascript查看网页是否为伪静态的方法是什么

javascript怎么实现禁止缩放

javascript中创建对象的7种经典方式(总结)

简述javascript如何创建数组

javascript数组怎么求和

javascript继承方法有哪些

javascript的后缀是什么

javascript数组去重有哪几种方式

更多相关阅读请进入《javascript》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...