<script>

                            var arr = [1,1,1,2,2,12,12,1,1,"a","a","a","c","c","你","你","我","我"];

                            //第一种,通过双层循环删除后面与其相等的元素,

                            function qucg1(arr){

                                     for(var i=0;i<arr.length-1;i++){  //循环遍历数组

                                               for(var j=i+1;j<arr.length;j++){//判断i位置后有没有与i位置上相等的数

                                                        if(arr[i]==arr[j]){                        //如果相等,就删除该位置上的数

                                                                 arr.splice(j,1);

                                                                 j--;                                         //删除后,j--使其回到该位置上继续往后查找与i位置上的数,直到没有与i位置上的数相等的,j循环结束,i++

                                                        }

                                               }

                                     }

                                     console.log(arr);

                            }

                            //第二种,通过关联数组key值唯一性的特性来筛选

                            function qucg2(arr){

                                     for(var i=0,hash=[],b=[];i<arr.length;i++){  //循环遍历数组

                                               if(hash[arr[i]]==undefined){ //如果hash中下表为arr[i]的值为undefined,

                                                        hash[arr[i]]=0;                                    //并且hash数组中下标为arr[i]的value值为0(0这个值可以是任何值只要不为空)

                                                        b[b.length]=arr[i];                    //那么就把arr[i]添加到数组b中,

                                               }

                                     }

                                     console.log(b);

                            }

                            //第三种,先排序删除相邻相等的元素

                            function qucg3(){

                                     arr.sort();  //先给数组排序,

                                     for(var i=0;i<arr.length-1;i++){//循环遍历数组

                                               if(arr[i]==arr[i+1]){           //如果相邻的数与其相等就删除相邻的元素

                                                        arr.splice(i+1,1);               

                                                        i--;                                          //回到原位置继续判断相邻位置的元素是否相等,

                                               }

                                     }

                                     console.log(arr);

                            }

                            //第四种,通过对象属性值的唯一特性进行筛选,原理和关联数组一样

                            function qucg4(arr){

                                     var rest = [];

                                     var obj = {}

                                     for(var i=0;i<arr.length;i++){

                                               if(!obj[arr[i]]){

                                                        obj[arr[i]]=1;

                                                        rest.push(arr[i]);

                                               }

                                     }

                                     console.log(rest);

                            }

                            //第五种,通过indexof()APi查找该元素的位置

                            function qucg5(){  

                                     for(var i=0;i<arr.length;i++){  //循环遍历数组

                                               var index=arr.indexOf(arr[i],i+1);//定义一个index 用来接收indexOf()找到的元素位置,没找到就返回-1  并且是从i+1位置开始查找的

                                               if(index!=-1){                                        //如果返回的不是-1就说明有相等的元素                                         

                                                        arr.splice(index,1); //删除该位置上的元素

                                                        i--;

                                               }

                                     }

                                     console.log(arr);

                            }

                            //第六种,

                            function qucg6(){

                                    

                            }

                            qucg5(arr);

                   </script>

posted on 2019-08-15 19:46  Godfather-twq  阅读(176)  评论(0编辑  收藏  举报