|
@@ -0,0 +1,72 @@
|
|
|
+<!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>
|