首页 > 编程语言 > 详细

至少三种数组去重

时间:2021-08-30 12:08:35      阅读:6      评论:0      收藏:0      [点我收藏+]

1、第一种  set参数中的值不能重复

  

1 var arr = [1, 2, 2, 3, 3, 4, 4, 1, 5, 5];
2 var setArr = new Set(arr);
3 var newArr = Array.from(setArr);
4 console.log(newArr);
打印结果为: [ 1, 2, 3, 4, 5 ]

2、可以利用双重循环体遍历数组去重,声明一个flag

 1 var arr = [1, 2, 2, 3, 3, 4, 4, 1, 5, 5];
 2 var newArr = [];
 3 for (var i = 0; i < arr.length; i++) {
 4     var flag = true; //这里声明flag
 5     for (var j = 0; j < newArr.length; j++) {
 6         if (arr[i] == newArr[j]) { 
 7             flag = false;
 8         }
 9     }
10     if (flag) {
11         newArr.push(arr[i]);
12     }
13 }
14 console.log(newArr);// [ 1, 2, 3, 4, 5 ]

3、indexOf

  其中一种

1 var arr = [1, 2, 2, 3, 3, 4, 4, 1, 5, 5];
2 var newArr = [];
3 for (var i = 0; i < arr.length; i++) {
4     if (arr.indexOf(arr[i]) === i) {
5         newArr.push(arr[i]);
6     }
7 }
8 console.log(newArr);//[ 1, 2, 3, 4, 5 ]

  第二种

1 var arr = [1, 2, 2, 3, 3, 4, 4, 1, 5, 5];
2 var newArr4 = [];
3 for (var i = 0; i < arr.length; i++) {
4     if (newArr4.indexOf(arr[i]) == -1) { 
5         newArr4.push(arr[i]);
6     }
7 }
8 console.log(newArr4);

4.利用对象去重

 1 var arr = [1, 2, 2, 3, 3, 4, 4, 1, 5, 5];
 2 var newArr = [];
 3 function fn(arr) {
 4     var obj = {};
 5     for (var i = 0; i < arr.length; i++) {
 6         if (!obj[arr[i]]) {
 7             newArr.push(arr[i]);
 8             obj[arr[i]] = 1;
 9         }
10     }
11     return newArr;
12 }

    结束了!!!

  暂时总结的就这些了之后慢慢补充。。。

至少三种数组去重

原文:https://www.cnblogs.com/1215056121mjw/p/15195318.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!