广告
返回顶部
首页 > 资讯 > 精选 >JS实现数组去重的方法有哪些
  • 533
分享到

JS实现数组去重的方法有哪些

2023-06-29 20:06:15 533人浏览 泡泡鱼
摘要

这篇文章主要介绍了js实现数组去重的方法有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JS实现数组去重的方法有哪些文章都会有所收获,下面我们一起来看看吧。1.ES5常用:利用for嵌套for,然后spli

这篇文章主要介绍了js实现数组去重的方法有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JS实现数组去重的方法有哪些文章都会有所收获,下面我们一起来看看吧。

1.ES5常用:利用for嵌套for,然后splice去重

    function unique(arr) {        for (var i = 0; i < arr.length; i++) {            for (var j = i + 1; j < arr.length; j++) {                if (arr[i] == arr[j]) { //第一个等同于第二个,splice方法删除第二个                    arr.splice(j, 1);                    j--;                }            }        }        return arr;    }    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))

JS实现数组去重的方法有哪些

解析:两个null消失,NaN和{}没有去重

2.es6常用:Set去重

    function unique(arr) {        return Array.from(new Set(arr))    }    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))

JS实现数组去重的方法有哪些

解析:去重代码少。但是无法去除{}空对象。

3.indexOf去重

    function unique(arr) {        if (!Array.isArray(arr)) {            console.log('type error!')            return        }        var array = [];//新建空数组,for循环原数组,判断数组是否存在当前元素,如果相同的值跳过,不同push进数组        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))

JS实现数组去重的方法有哪些

解析:NaN、{}没有去重

4.sort()排序

//排序后的结果,遍历对比    function unique(arr) {        if (!Array.isArray(arr)) {            console.log('type error!')            return        }        arr = arr.sort()        var arrray = [arr[0]];        for (var i = 0; i < arr.length; i++) {            if (arr[i] !== arr[i - 1]) {                arrray.push(arr[i]);            }        }        return arrray    }    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))

JS实现数组去重的方法有哪些

解析:NaN、{}没有去重

5.对象属性不能相同(不建议)

    function unique(arr) {        if (!Array.isArray(arr)) {            console.log('type error!')            return        }        var array = [];        var obj = {};        for (var i = 0; i < arr.length; i++) {            if (!obj[arr[i]]) {                array.push(arr[i])                obj[arr[i]] = 1            } else {                obj[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))

JS实现数组去重的方法有哪些

解析:两个true去掉,NaN和{}没有去重

6.includes()

    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))

JS实现数组去重的方法有哪些

解析:{}没有去重

7.hasOwnProperty

function unique(arr) {    var obj = {};    return arr.filter(function(item, index, arr){        return obj.hasOwnProperty(typeof item + item) ? false : (obj[typeof item + item] = true)    })}

JS实现数组去重的方法有哪些

解析:所有都去重

8.filter

    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))

JS实现数组去重的方法有哪些

解析:{}没有去重、NaN两个都没有了

9.利用递归去重

 function unique(arr) {        var array = arr;        var len = array.length;        array.sort(function (a, b) { //排序后更加方便去重            return a - b;        })        function loop(index) {            if (index >= 1) {                if (array[index] === array[index - 1]) {                    array.splice(index, 1);                }                loop(index - 1); //递归loop,然后数组去重            }        }        loop(len - 1);        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))

JS实现数组去重的方法有哪些

解析:NaN和{}没有去重

10.Map去重

    function arrayNonRepeatfy(arr) {        let map = new Map();        let array = new Array(); // 数组用于返回结果        for (let i = 0; i < arr.length; i++) {            if (map.has(arr[i])) { // 如果有该key值                map.set(arr[i], true);            } else {                map.set(arr[i], false); // 如果没有该key值                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(arrayNonRepeatfy(arr))

JS实现数组去重的方法有哪些

解析:创建一个空Map数据结构,遍历需要去重的数组,把数组的每一个元素作为key存到Map中。由于Map中不会出现相同的key值,所以最终得到的就是去重后的结果。{}空对象无法去重。

11.reduce+includes

    function unique(arr) {        return arr.reduce((prev, cur) => prev.includes(cur) ? prev : [...prev, cur], []);    }    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));

JS实现数组去重的方法有哪些

解析:{}无法去重

关于“JS实现数组去重的方法有哪些”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“JS实现数组去重的方法有哪些”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网精选频道。

--结束END--

本文标题: JS实现数组去重的方法有哪些

本文链接: https://www.lsjlt.com/news/326339.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • JS实现数组去重的方法有哪些
    这篇文章主要介绍了JS实现数组去重的方法有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JS实现数组去重的方法有哪些文章都会有所收获,下面我们一起来看看吧。1.ES5常用:利用for嵌套for,然后spli...
    99+
    2023-06-29
  • js数组去重的方法有哪些
    js数组去重的方法有使用Set、使用indexOf、使用includes、使用filter和使用reduce。1、使用Set,特点是集合中的元素不会重复;2、使用indexOf,可以返回指定元素在数组中的第一个索引位置;3、使用includ...
    99+
    2023-08-09
  • JS数组去重常用方法有哪些
    这篇文章主要介绍了JS数组去重常用方法有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。具体如下:先对浏览器Array对象进行支持inde...
    99+
    2022-10-19
  • JS对象数组去重的方法有哪些
    本篇内容介绍了“JS对象数组去重的方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!目录一.去重前后数据对比二.使用方法使用filte...
    99+
    2023-06-20
  • 高性能js数组去重的方法有哪些
    这篇文章主要介绍高性能js数组去重的方法有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!数组去重的方法一、利用ES6 Set去重(ES6中最常用)function un...
    99+
    2022-10-19
  • JavaScript中实现数组去重有哪些方法
    小编给大家分享一下JavaScript中实现数组去重有哪些方法,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!数组去重const arr = [1, ...
    99+
    2022-10-19
  • javascript数组去重有哪些方法
    本篇内容介绍了“javascript数组去重有哪些方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!去重方...
    99+
    2022-10-19
  • javascript数组去重方法有哪些
    这篇文章给大家分享的是有关javascript数组去重方法有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 第一种--对象键值去重Array.prototype.u...
    99+
    2022-10-19
  • JavaScrip数组去重的方法有哪些
    这篇文章主要讲解了“JavaScrip数组去重的方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JavaScrip数组去重的方法有哪些”吧!本文实例...
    99+
    2022-10-19
  • ES6数组去重的方法有哪些
    这篇文章主要介绍“ES6数组去重的方法有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“ES6数组去重的方法有哪些”文章能帮助大家解决问题。 ...
    99+
    2022-10-19
  • node数组去重的方法有哪些
    本文小编为大家详细介绍“node数组去重的方法有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“node数组去重的方法有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。 ...
    99+
    2022-10-19
  • string数组去重的方法有哪些
    有以下几种方法可以去重一个字符串数组:1. 使用Set:将字符串数组转换为Set集合,由于Set集合不允许重复元素,所以重复的字符串...
    99+
    2023-08-15
    string
  • php数组去重的方法有哪些
    PHP数组去重的方法有以下几种:1. 使用array_unique函数:该函数可以去除数组中重复的值,并返回一个新的数组。```ph...
    99+
    2023-08-15
    php
  • JavaScript中数组去重的方法有哪些
    本篇内容介绍了“JavaScript中数组去重的方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2022-10-19
  • JS实现数组去重的11种方法总结
    目录1.ES5常用:利用for嵌套for,然后splice去重2.ES6常用:Set去重3.indexOf去重4.sort()排序5.对象属性不能相同(不建议)6.includes(...
    99+
    2022-11-13
  • js数组去重的11种方法
    在实际工作或面试中,我们经常会遇到“数组去重”问题,接下来就是使用js实现的数组去重的多种方法: 1.将数组的每一个元素依次与其他元素做比较,发现重复元素,删除 var arr ...
    99+
    2022-11-12
  • PHP数组去重的5种方法有哪些
    一、array_unique()函数 这是PHP自带的一个数组去重函数!我们可以用这个函数很方便地去除数组中的重复元素,但它并不会改变原数组的顺序。 二、array_flip()函数 array_flip()函数首先会将数...
    99+
    2023-10-29
    数组 种方法 有哪些
  • php数组元素去重的方法有哪些
    在PHP中,有几种方法可以对数组元素进行去重:1. 使用array_unique()函数:该函数会返回一个去重后的数组,保留数组中第...
    99+
    2023-08-16
    php
  • JavaScript数组去除重复的方法有哪些
    这篇文章主要介绍了JavaScript数组去除重复的方法有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JavaScript数组去除重复的方法有哪些文章都会有所收获,下面我们一起来看看吧。方法一:返回新数组...
    99+
    2023-07-04
  • 七种JS实现数组去重的方式
    目录1.利用Set()+Array.from() 2.利用两层循环+数组的splice方法 3.利用数组的indexOf方法 4.利用数组的includes方法 5.利用数组的fil...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作