Javascript去掉数组重复内容的2种办法
2017-03-25 10:52
393 查看
方法1的优点在于不用建立新的数组,但不易理解;方法2需要建立新的数组,但容易理解。
1. 取数组第1个元素,
2. 从后往前与数组其他元素对比;
3. 若想等,则将匹配的元素移到最后,并记录次数;
4. 取第2个元素,重复2~4步;
5. 最后获得重新排序的数组,后面的都是重复多余的元素,个数与累积的记录次数一致(需要特别注意处理方式);
6. 重新设定数组的长度,获得没有重复元素的数组;
代码如下:
1. 建立空的新数组;
2. 将旧数组的元素依次与新数组的元素比对,若未发现相同的元素,则将该元素加入到新数组;
代码如下:
方法1:
思路:1. 取数组第1个元素,
2. 从后往前与数组其他元素对比;
3. 若想等,则将匹配的元素移到最后,并记录次数;
4. 取第2个元素,重复2~4步;
5. 最后获得重新排序的数组,后面的都是重复多余的元素,个数与累积的记录次数一致(需要特别注意处理方式);
6. 重新设定数组的长度,获得没有重复元素的数组;
代码如下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>repeat</title> </head> <body> <script> var arr = [0,1,3,2,3,5,7,0,1,0,2,2,3,1,0]; var count = 0; var len = arr.length; var len2 = arr.length; for (var i = 0; i < len2; i++) {//注意len2会随获得的重复次数递减,避免重复计算,保证获得的重复元素数量count是正确的; for (var j = len-1-i; j >i; j--) {//注意j的设定,避免重复计算, //检测是否重复的循环 if(arr[i]==arr[j]){ //将匹配位置后的内容全部往前移,并将匹配值放到最后 var a = arr[j]; for (var k = j; k < len-1; k++) { arr[k]=arr[k+1]; } arr[len-1]=a; count++;//累积匹配的次数 len2--//重复的内容不再计入排查范围,避免重复计算,同时保证count的次数与重复数的数量相同; console.log(arr); } } } arr.length=len-count;//重设数组长度,将重复元素去掉 console.log(arr); </script> </body> </html>
方法2
思路:1. 建立空的新数组;
2. 将旧数组的元素依次与新数组的元素比对,若未发现相同的元素,则将该元素加入到新数组;
代码如下:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> </head> <body> <script type="text/javascript"> var arr = [0,1,2,3,0,1,2,3,5,6,3,2,1,8,0]; var arr2 = new Array(); arr2[0]=arr[0]; document.write("去除前:"+arr+"<br/>") var len1=arr.length;// 8 var len2=arr2.length; var k=1; for(var i=1;i<len1;i++){ var a=-1;//提供判定依据,不匹配为-1,匹配则为0以上的j; for(var j=0;j<len2;j++){ if(arr[i]==arr[j]){//若新元素与新数组内的某个元素重复,则给a赋值j; var a=j; } } if(a<0){ //根据a的值判定,a为-1则表示新数组内无元素与新元素相同,可以加入新元素; arr2[k]=arr[i]; len2=arr2.length; k++; } } document.write("去除后:"+arr2+"<br/>") </script> </body> </html>
相关文章推荐
- JavaScript几种数组去掉重复值的方法
- 数组-去掉重复内容
- javascript数组去掉重复项
- JavaScript数组去掉重复数据总结
- 使用javascript去掉数组中重复元素的方法
- javascript 去掉数组中前或后重复项
- javascript去掉数组重复项
- JavaScript去掉数组中的重复元素
- javascript数组去掉重复项
- JavaScript高效去掉数组中的重复元素
- javascript和java数组中去掉重复元素的方法
- javascript数组去掉重复
- JavaScript去掉数组中的重复元素
- JavaScript如何去掉数组中重复的元素
- javascript:利用javascript对象的特性去掉数组中的重复项
- javascript为数组去掉重复元素
- javascript中如何去掉数组中的重复项