至少三种数组去重

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 }

    结束了!!!

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

至少三种数组去重

上一篇:java io之File类


下一篇:[JavaWeb] CSS——基础选择器,字体和文本样式