龙空技术网

javaScript 数组去重方法总结(三种)

栗子纪 207

前言:

此时我们对“js函数数组去重”大概比较关怀,各位老铁们都想要了解一些“js函数数组去重”的相关内容。那么小编同时在网络上汇集了一些有关“js函数数组去重””的相关资讯,希望同学们能喜欢,各位老铁们一起来了解一下吧!

法一(数组使用splice方法)

 var arr=[1,2,3,4,1,2,3,2,1,1,3,7,7,2,1,6,1,2,4,5,1,2,3];        //循环遍历数组        for(var i=0;i<arr.length;i++){            //定义变量获取当前元素            var item=arr[i];            //循环遍历i之后的元素            for(var j=i+1;j<arr.length;j++){            //判断i之后的元素是否有与当前元素相等的                if(item===arr[j]){            //如果有相等的,删除此元素                    arr.splice(j,1);            //元素删除之后,数组长度改变,当前下标j元素会被后面的元素覆盖,为防止遗漏元素,需要下次循环依然从此下标开始,所以需要j--.                    j--;                }            }        }console.log(arr); 
法二(将去重结果赋值给新数组)
var arr=[1,2,3,4,1,2,3,2,1,1,3,7,7,2,1,6,1,2,4,5,1,2,3];var arr1=[];//循环遍历原数组for(var i=0;i<arr.length;i++){        //获取当前元素        var item=arr[i];        //定义布尔类型变量并初始值为真        var bool=true;        //循环遍历新数组        for(var j=0;j<arr1.length;j++){             //如果新数组中已经有此元素,则bool为假并跳出             if(arr1[j]===item){             bool=false;             break;             }        }        //如果最后bool仍然为真,说明新数组中无此元素,执行插入操作        if(bool){            arr1.push(item);         } }console.log(arr1); 
法三 (原理与法二类似,但使用indexOf方法更简化)
var arr=[1,3,1,2,3,5,2,3,4,6];var arr1=[];//循环遍历原数组for(var i=0;i<arr.length;i++){           //在新数组中查找当前元素,如果查询不到(indexOf返回值为-1),则执行插入操作            if(arr1.indexOf(arr[i])===-1){                arr1.push(arr[i]);            } }console.log(arr1); 
var arr=[1,3,1,2,3,5,2,3,4,6];var arr1=[];//循环遍历原数组for(var i=0;i<arr.length;i++){           //在新数组中查找当前元素,如果查询不到(indexOf返回值为-1),则执行插入操作            if(arr1.indexOf(arr[i])===-1){                arr1.push(arr[i]);            } }console.log(arr1); 

标签: #js函数数组去重 #js的foreach会改变原数组吗