栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > Web开发 > JavaScript

js数组去重方法

JavaScript 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

js数组去重方法

Javascript中,对于数组的操作有很多,因此根据众多数组情况,出现了不同的数组去重方法。本文总结了js数组中常见的四种方法:1、使用indexOf()方法去除重复的元素;2、使用splice()方法与双层循环去除重复的元素;3、使用数组递归去重;4、使用ES6提供的Set结构去除重复的元素。

方法一:使用indexOf()方法去除重复的元素

原理:新创建了一个数组,用indexOf()一次检测b数组中是否有a数组同样的元素,如果没有将该元素添加到b数组中。

function ar(a) {
                   var b=new Array();
                  for(i=0; i

方法二:使用splice()方法与双层循环去除重复的元素

原理:双层循环,比较相同的值,使用splice删除重复元素。

        function unique8(arr) {
            var i,j,len = arr.length;
            for (i = 0; i < len; i++) {
                for (j = i + 1; j < len; j++) {
                    if (arr[i] == arr[j]) {
                        arr.splice(j, 1);
                        len--;
                        j--;
                    }
                }
            }
            return arr;
        }
        console.log(unique8([1, 1, 2, 3, 5, 3, 1, 5, 6, 7, 4]));

方法三:使用数组递归去重

原理:运用递归的思想,先排序,然后从最后开始比较,遇到相同,则删除。

      Array.prototype.distinct = function(){
            var arr = this ,
            len = arr.length;
            arr.sort(function(a,b){ //对数组进行排序才能方便比较
                return a-b;
            })
 
            function loop(index){
                if(index >=1){
                    if(arr[index] ===arr[index-1]){
                        arr.splice(index,1)
                    }
                    loop(index-1) //递归loop函数进行去重
                }
 
            }
            loop(len-1)
            return arr;
        }

方法四:使用ES6提供的Set结构去除重复的元素

原理:利用Set结构不能接收重复数据的特点。

          function depute(array){
            return Array.from(new Set(array))
        }
        console.log(depute([1,1,2,33,3,3]))

以上就是小编整理的js数组去重的常见四种方法,大家可以根据具体情况选择合适的方法哦~

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/14723.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号