<!-- 第一种 -->
        <script type="text/javascript">
            var arr = [10,20,8,9,3,2,1,2,2,2,8,20,10];
            function superSort(arr){
                function sort(num1,num2){
                    return num2 - num1;
                }
                arr.sort(sort);
                for(var i = 0,len = arr.length; i < len; i ++){
                    for(var j = i + 1;j < arr.length;j ++){
                        if(arr[j] == arr[i]){
                            arr.splice(j,1);
                            j --;
                        }
                    }
                }
            }
            superSort(arr);
            alert(arr);
        </script>
        <!-- 第二种 -->
        <script>
            var arr = ['a','bd','d','e','d','a','b','f','g','bc','b','f','c'];
            var arr2 = [];
            arr.forEach( function(v) {                
                if (arr2.indexOf(v)==-1) {
                    arr2.push(v);
                }
            });
            console.log(arr2);
        </script>
        <!-- 第三种 -->
        <script>
            var arr1 = [1,2,3,4,5,2,1,3,8,9,10];
            function fn(arr){
              var res =[];
              var res1 = {};
              for(var i=0;i<arr.length;i++){
                if(!res1[arr[i]]){
                  res.push(arr[i]);
             res1[arr[i]] = 1;
                }
              }
              return res;
            }
            fn(arr1);
            console.log(fn(arr1));
        </script>
<!-- 第四种 -->
<script>
    // var set = new Set([1,2,3,4,5,4,3,2,1]);
    // console.log( Array.from( set )  )
    // 两种都是set去重的方法,写法不同
    console.log( [... new Set([1,2,3,4,5,4,3,2,1]) ] );
</script>