zoukankan      html  css  js  c++  java
  • Js中去除数组中重复元素的几种方法

    方法1:

    1 Array.prototype.method1=function(){
    2     var arr=[];
    3     for(var i=0;i<this.length;i++){
    4         if(arr.indexOf(this[i]) == -1){
    5            arr.push(this[i]);
    6         }
    7     }
    8     return arr;
    9 }

    方法2:

     1   Array.prototype.method2 = function(){  
     2             var h{};    //定义一个hash表  
     3             var arr[];  //定义一个临时数组  
     4               
     5             for(var i = 0; i < this.length; i++){    //循环遍历当前数组  
     6                 //对元素进行判断,看是否已经存在表中,如果存在则跳过,否则存入临时数组  
     7                 if(!h[this[i]]){  
     8                     //存入hash表  
     9                     h[this[i]] = true;  
    10                     //把当前数组元素存入到临时数组中  
    11                     arr.push(this[i]);  
    12                 }  
    13             }  
    14             return arr;  
    15         }

    方法3:

     1    Array.prototype.method3 = function(){  
     2             //直接定义结果数组  
     3             var arr[this[0]];  
     4             for(var i = 1; i < this.length; i++){    //从数组第二项开始循环遍历此数组  
     5                 //对元素进行判断:  
     6                 //如果数组当前元素在此数组中第一次出现的位置不是i  
     7                 //那么我们可以判断第i项元素是重复的,否则直接存入结果数组  
     8                 if(this.indexOf(this[i]) == i){  
     9                     arr.push(this[i]);  
    10                 }  
    11             }  
    12             return arr;  
    13           
    14         } 

    方法4:

     1 Array.prototype.method4 = function(){  
     2             //将数组进行排序  
     3             this.sort();  
     4             //定义结果数组  
     5             var arr[this[0]];  
     6             for(var i = 1; i < this.length; i++){    //从数组第二项开始循环遍历数组  
     7                 //判断相邻两个元素是否相等,如果相等说明数据重复,否则将元素写入结果数组  
     8                 if(this[i] !== arr[arr.length - 1]){  
     9                     arr.push(this[i]);  
    10                 }              
    11             }  
    12             return arr;  
    13               
    14         } 
  • 相关阅读:
    165. Compare Version Numbers
    164. Maximum Gap
    3、桶排序
    162. Find Peak Element
    160. Intersection of Two Linked Lists
    155. Min Stack
    154. Find Minimum in Rotated Sorted Array II
    153. Find Minimum in Rotated Sorted Array
    Linux/Unix系统编程手册 第二章:基本概念
    Linux/Unix系统编程手册 第一章:历史和标准
  • 原文地址:https://www.cnblogs.com/missguolf/p/8195015.html
Copyright © 2011-2022 走看看