练习题8_数组去重.html 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>Document</title>
  7. </head>
  8. <body>
  9. <script>
  10. let arr = [1,2,3,4,3,'a',2,1,'a'];
  11. // 方法一 利用双循环逐个对比
  12. // function unique(arr){
  13. // for(let i = 0;i<arr.length;i++){
  14. // for(let j = i+1;j<arr.length;j++){
  15. // if(arr[i] == arr[j]){
  16. // arr.splice(j,1);
  17. // j--;
  18. // }
  19. // }
  20. // }
  21. // return arr;
  22. // }
  23. // console.log(unique(arr));
  24. // 方法二 利用对象属性名不能重复的特性
  25. // var obj = {
  26. // a:1,
  27. // b:2,
  28. // a:4
  29. // }
  30. // obj.a = 3;
  31. // function unique(arr){
  32. // let obj = {};
  33. // for(let i = 0;i<arr.length;i++){
  34. // if(arr[i] in obj){
  35. // obj[arr[i]]++
  36. // }else{
  37. // obj[arr[i]] = 1;
  38. // }
  39. // }
  40. // // console.log(obj);
  41. // return Object.keys(obj);
  42. // }
  43. // console.log(unique(arr));
  44. // 方法三 利用indexOf
  45. // function unique(arr){
  46. // // 装载不重复的值
  47. // let newArr = [];
  48. // for(let i = 0;i<arr.length;i++){
  49. // if(newArr.indexOf(arr[i]) == -1){
  50. // newArr.push(arr[i]);
  51. // }
  52. // }
  53. // return newArr;
  54. // }
  55. // console.log(unique(arr));
  56. // 方法四 利用ES6的Set
  57. function unique(arr){
  58. // let newArr = new Set(arr);
  59. // newArr = Array.from(newArr);
  60. // console.log(newArr);
  61. // return [...new Set(arr)];
  62. return Array.from(new Set(arr));
  63. }
  64. console.log(unique(arr));
  65. </script>
  66. </body>
  67. </html>