zoukankan      html  css  js  c++  java
  • 数组去重是面试中经常问到的问题

    数组去重是面试中经常问到的问题

    [html] view plain copy
    1. var arr=[1,3,4,52,4,5,4,8,7,6];  


    第一种方法:使用ES5中的indexOf进行去重:
    [javascript] view plain copy
    1. function arr1(){  
    2.       var n=[];  
    3.        for(var i=0;i<arr.length;i++){  
    4.            if(n.indexOf(arr[i])==-1){  
    5.                n.push(arr[i]);  
    6.            }  
    7.        }  
    8.        return n;  
    9.    }//先定义一个空数组,然后遍历数组,使用indexOf检查是否含有重复元素,如果没有则插入到n中。使用此类方法应考虑ES5的兼容性问题  
    [javascript] view plain copy
    1.   

    运行结果如下:
    第二种方法:先排序后然后再相邻比较去重
    [javascript] view plain copy
    1. function arr3(){  
    2.          arr.sort();  
    3.         var re=[arr[0]];  
    4.         for(var i=1;i<arr.length;i++){  
    5.             if(arr[i]!==re[re.length-1]){  
    6.                 re.push(arr[i]);  
    7.   
    8.             }  
    9.         }  
    10.         return re;  
    11.     }  
    此种方法比第一种效率更好:
    第三种方法:使用map去重
    [javascript] view plain copy
    1. function arr4(arr){  
    2.         var map={};  
    3.         if(arr&&Array.isArray(arr)){  
    4.             for(var i=arr.length;i>=0;--i){  
    5.                 if(arr[i] in map){  
    6.                     arr.splice(arr[i],1);  
    7.                 }else{  
    8.                     map[arr[i]] = true;  
    9.                 }  
    10.             }  
    11.         }  
    12.         return arr;  
    13.   
    14.     }  

    效率最高:
  • 相关阅读:
    (项目)在线教育平台(九)
    (项目)在线教育平台(八)
    界面渐变特效 -- CSS实现 -- 兼容IE8
    固定背景图片铺满浏览器窗口
    时间连带上下午
    慢显示动画
    CSS强制英文、中文换行与不换行 强制英文换行
    html5 标签在 IE 下使用
    html5 兼容版本 video
    添加到收藏夹
  • 原文地址:https://www.cnblogs.com/codepen2010/p/6900218.html
Copyright © 2011-2022 走看看