1 <script>
2 var arr = [6,2,2,4,4,6,6,4,4,6,6,2,23,23,31];
3 /*第一种去重方式:双重循环*/
4 /* function Toheavy(arr){
5 if(!Array.isArray(arr)){
6 return "type error!";
7 }
8 let newarr = [];
9 for(let i = 0 ; i <arr.length;i++){
10 let flag = true;
11 for(let j = 0;j<newarr.length;j++){
12 if(arr[i]===newarr[j]){
13 flag= false;
14 break;
15 }
16 }
17 if(flag){
18 newarr.push(arr[i]);
19 }
20 }
21 return newarr;
22 } */
23
24 /*第二种去重方式:indexOf()去重一*/
25 /* function Toheavy(arr){
26 if(!Array.isArray(arr)){
27 return "type error!";
28 }
29 let newarr = [];
30 for(let i = 0;i<arr.length;i++){
31 if(newarr.indexOf(arr[i])===-1){
32 newarr.push(arr[i]);
33 }
34 }
35 return newarr;
36 } */
37 /*第三种方式去重:indexOf()去重二*/
38 /* function Toheavy(arr){
39 if(!Array.isArray(arr)){
40 return "type error!";
41 }
42 return Array.prototype.filter.call(arr,function(item,index){
43 return arr.indexOf(item)===index;
44 })
45 }*/
46 /*第四种方式去重:相邻元素去重*/
47 /* function Toheavy(arr){
48 if(!Array.isArray(arr)){
49 return "type error!";
50 }
51 arr = arr.sort();
52 let newarr = [];
53 for(let i = 0;i<arr.length;i++){
54 if(arr[i]!==arr[i+1]){
55 newarr.push(arr[i]);
56 }
57 }
58 return newarr;
59 }*/
60 /*第五种方式去重:利用对象属性去重*/
61 /* function Toheavy(arr){
62 if(!Array.isArray(arr)){
63 return "type error!";
64 }
65 let newarr=[];
66 let obj = {};
67 for(let i = 0;i<arr.length;i++){
68 if(!obj[arr[i]]){
69 newarr.push(arr[i]);
70 obj[arr[i]]=1;
71 }else{
72 obj[arr[i]]++
73 }
74 }
75 return newarr;
76 }*/
77 /*第六种方式去重:set与结构赋值去重*/
78 /* function Toheavy(arr){
79 if(!Array.isArray(arr)){
80 return "type error!";
81 }
82 return [...new Set(arr)];
83 }*/
84 /*第七种方式去重:Arrar.form与set去重*/
85 function Toheavy(arr){
86 if(!Array.isArray(arr)){
87 return "type error!";
88 }
89 return Array.from(new Set(arr));
90 }
91 console.log(Toheavy(arr));
92
93 </script>