123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>Document</title>
- </head>
- <body>
- <script>
- let arr = [1,2,3,4,3,'a',2,1,'a'];
- // 方法一 利用双循环逐个对比
- // function unique(arr){
- // for(let i = 0;i<arr.length;i++){
- // for(let j = i+1;j<arr.length;j++){
- // if(arr[i] == arr[j]){
- // arr.splice(j,1);
- // j--;
- // }
- // }
- // }
- // return arr;
- // }
- // console.log(unique(arr));
- // 方法二 利用对象属性名不能重复的特性
- // var obj = {
- // a:1,
- // b:2,
- // a:4
- // }
- // obj.a = 3;
- // function unique(arr){
- // let obj = {};
- // for(let i = 0;i<arr.length;i++){
- // if(arr[i] in obj){
- // obj[arr[i]]++
- // }else{
- // obj[arr[i]] = 1;
- // }
-
- // }
- // // console.log(obj);
- // return Object.keys(obj);
- // }
- // console.log(unique(arr));
- // 方法三 利用indexOf
- // function unique(arr){
- // // 装载不重复的值
- // let newArr = [];
- // for(let i = 0;i<arr.length;i++){
- // if(newArr.indexOf(arr[i]) == -1){
- // newArr.push(arr[i]);
- // }
- // }
- // return newArr;
- // }
- // console.log(unique(arr));
- // 方法四 利用ES6的Set
- function unique(arr){
- // let newArr = new Set(arr);
- // newArr = Array.from(newArr);
- // console.log(newArr);
- // return [...new Set(arr)];
- return Array.from(new Set(arr));
- }
- console.log(unique(arr));
- </script>
- </body>
- </html>
|