首页 > 学院 > 开发设计 > 正文

关于去除JS数组中的重复元素问题

2019-11-11 05:16:45
字体:
来源:转载
供稿:网友

例如:数组 arr=[1,2,3,1,2,4,5,6];要去除arr[]数组中相同元素(即arr[]数组元素具有单一性)。

这里主要讲述两种实现方式:一种是遍历方式实现,另一种是关联数组方式实现。 较为好理解也是较为普遍的一种方式遍历方式;代码如下:

var arr=[1,2,3,1,2,4,5,6];function repeat1(arr){ //遍历arr中每个元素,同创建一新的索引数组result for(var i=0,result=[];i<arr.length;i++){ //遍历result中每个元素和arr中i位置元素比较 for(var j=0;j<result.length;j++){ //如果arr中i位置的元素等于result中j位置的元素,就退出循环 if(arr[i]==result[j]) break; } //如果j走到头,说明在result中没有遇到重复的元素,就将arr[i]放入result结尾 if(j==result.length) result[result.length]=arr[i]; } return result; }

这里写图片描述

方法二采用关联(hash)数组:

var arr=[1,2,3,1,2,4,5,6];function repeat2(arr){ //遍历arr中每个元素,声明一个关联数组,一个索引数组 for(var i=0,hash=[],result=[]; i<arr.length; i++){ //用arr[i]的元素作为hash[]数组的key,去result中查找是否包含——由hash算法完成,无需遍历 if(hash[arr[i]]===undefined){ hash[arr[i]]=true;//将arr[i]加入hash //将arr[i]加入result result[result.length]=arr[i]; } } return result; }

这里写图片描述


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表