宝哥软件园

js阵列重复数据消除方法概述

编辑:宝哥软件园 来源:互联网 时间:2021-08-27

首先,常见的方法是去除重量

1、简单的复制方法

//最简单的阵列重复数据消除方法//* *创建一个新阵列,遍历传入的阵列,如果该值不在新阵列中,则将该值推入新阵列。IE8以下不支持数组的indexOf方法。*/Function uniq(array){ var temp=[];//的新临时数组(var I=0;i array.lengthI){ if(temp . indexof(array[I])==-1){ temp . push(array[I]);} }返回温度;}var newArray=[1,2,2,4,9,6,7,5,2,3,5,6,5];console . log(uniq(NewArray));//[1,2,4,9,6,7,5,3]/*var newArray=['mu ',' zi ',' dig ',' big ',' z ',' mu ',' zi ',' muzidigbig ']console . log(uniq(new array));//['mu ',' zi ',' dig ',' big ',' z ',' muzidigbig ']*/

2.数组下标法

/* *调用“indexOf”的性能类似于方法1。*实现思路:如果第ith项在当前数组中的第一个出现位置不是I,*则表示第ith项重复,所以忽略。否则,它存储在结果数组中。*/function uniq(array){ var temp=[];for(var I=0;i array.lengthI) {//如果当前数组中第一个出现的ith项是I,则存储在数组中;否则,表示重复if (array。(数组[I])的索引==(I){ temp。push (array [I])}}返回temp}var aa=[1,2,' 2 ',4,9,' a ',' a ',2,3,5,6,5];console . log(uniq(aa));//[1,2,' 2 ',4,9,' a ',3,5,6]3。分选后的相邻去除方法

/* *对传入数组进行排序,排序后相同的值相邻。*遍历时,只有不重复先前值的值才会添加到新数组中。*会打乱原数组的顺序*/function uniq (array) {array。sort();console . log(array . sort());var temp=[数组[0]];for(var I=1;i array.lengthi ){ if(array[i]!==temp[temp . length-1]){ temp . push(array[I]);} }返回温度;}var aa=[1,2,' 2 ',4,9,' a ',' a ',2,3,5,6,5];console . log(uniq(aa));//[1,' 2 ',2,3,4,5,6,9,' a']4。优化遍历数组方法

//Idea:获取最右边不重复的值放入新数组//* *推荐方法*方法的实现代码挺酷的,*实现Idea:获取最右边不重复的值放入新数组。*(检测到重复值时,终止当前循环,进入上一轮循环)*/function uniq(array){ var temp=[];var索引=[];var l=array.lengthfor(var I=0;I l;I){ for(var j=I ^ 1;j l;j){ if(array[I]===array[j]){ I;j=I;} } temp.push(数组[I]);index . push(I);} console.log(索引);//[0,2,5,6,7,8,9]返回temp}var aa=[1,2,2,3,5,3,6,5,' 3 ','子木'];console . log(uniq(aa));//[1,2,3,6,5,' 3 ','子木']5。要复制的数组包含()

//对数组原型对象使用includes方法函数unique(arr){ var BARR=[];for(var I=0;长度;i ){ if(!BArr。包括(arr[I]){//如果新的Barr数组包含当前循环项Barr . push(arr[I]);} }返回bArr}var aa=[1,2,2,3,5,3,6,5,' 3 ','子木'];Console.log (unique (aa))//[1,2,3,5,6,' 3 ','子木'] 6。过滤并包含数组原型对象的方法

//使用数组原型对象上的filter和includes方法来函数unique 6(arr){ var Barr=[];bArr=arr.filter(函数(项){ return bArr.includes(项)?null : bArr.push(项);});返回bArr}var aa=[1,2,2,3,5,3,6,5,' 3 ','子木'];Console.log (Unique6 (AA))//[1,2,3,5,6,' 3 ','子木'] 7。forEach包含数组原型对象的方法

//使用forEach并在数组原型对象上包含方法function unique 7(arr){ var Barr=[];arr.forEach(函数(项){ bArr.includes(项)?null : bArr.push(项);});返回bArr}var aa=[1,2,2,3,5,3,6,5,' 3 ','子木'];第二,原型对象被复制

方法1:

想法:1)建立一个临时数组来存储结果;

2)循环遍历当前数组,判断当前数组中下标为I的元素是否已经保存在临时数组中;如果是,跳过它;否则,将元素保存在临时数组中。

array . prototype . method 1=function(){ var arr=[];//为(var I=0;我这个长度;I ){ //遍历当前数组//判断当前数组中索引为I的元素是否已经保存到临时数组//如果已经保存则跳过,否则将此元素保存到临时数组if (arr。(此[I])的索引==-1) {arr。推(这个[我]);} }返回arr};var arrNum1=[1,4,1,1,3,3,4,6,7,8,3,7,0,2,11,2,'子木','迪格比格','子木'];console . log(arrnum 1 . method 1());//[1,4,3,6,7,8,0,2,11,'子木','挖大']三。es6的重复数据消除

让arr=[1,2,2,3,4,4,4];let s=新集合(arr);//结果:set {1,2,3,4}让new arr=array。来自;//结果:[1,2,3,4],重复删除完成

如果有任何不足,请给我你的建议!希望给大家带来帮助!

摘要

以上就是本文的全部内容。希望本文的内容对大家的学习或工作有一定的参考价值。谢谢你的支持。如果你想了解更多,请查看下面的相关链接

更多资讯
游戏推荐
更多+