• javascript数组去重


    JS的数组去重也是前端面试经常问到的问题,之前有一次面试就遇到让我写数组去重,而且一般这个问题都伴随着多写一种多加分的情况,所以掌握的方法自然多多益善。

    网上可以找到很多数组去重的方法,我自己整理了一下以供今后自己复习。

    利用indexOf:

    最简单的方法就是利用indexOf方法来实现数组去重,但这个方法有一个缺点就是老版本浏览器不支持

    function unique(arr){
        var newArr = []
        for(var i=0,len=arr.length;i++){
            var item = arr[i]
            if(newArr.indexOf(item) == -1){
                newArr.push(item)
            }
        }
        return newArr
    }

    利用hash表:

    function unique(arr){
       var hash = {}
       var result = []
       for(var i=0,len=arr.length;i<len;i++){    
           if(!hash[arr[i]]){
                result.push(arr[i])
                hash[arr[i]] = true
           }     
       } 
       return result
    }

    数组去重升级版:

    这是我在面试时遇到的题,要求是这样的,不仅要对数组去重,而且还要输出重复数据重复的次数。做法其实就是hash表去重法的改进而已。

    function unique(arr){
         var hash = {}
         var result = []
         for(var i=0,len=arr.length;i<len;i++){
             if(!hash[arr[i]]){
                 hash[arr[i]] = 1
                 result.push(arr[i]) 
             }else{
                 hash[arr[i]] += 1
             }
         }
         
         console.log("去重后的数组为:"+result)
         console.log("数据重复的情况为:")
         for(var key in hash){
             if(hash[key]>1){
               console.log(key+":"+hash[key])
             }
         } 
    }            
  • 相关阅读:
    Spring-boot 项目中使用 jackson 遇到的一个问题
    Spring Cloud 简介
    VSCode配置JAVA开发环境
    Smtp错误码
    Git遇到的问题
    对于static静态
    面向对象
    类与对象的概念
    java执行过程
    nacos安装部署
  • 原文地址:https://www.cnblogs.com/minz/p/5971410.html
Copyright © 2020-2023  润新知