zoukankan      html  css  js  c++  java
  • 一个不确定内容的数组,统计每个元素出现的次数的方法

    第一种方法使用reduce方法,通过传入的内容来确定
    var arrs=['a','a','d','c','f','d','我','我','他',2,2,5,4,6,8];
    function a(){
        return  arrs.reduce( function(prev:any,next:any){
            console.log(prev);
            console.log(next);
            prev[next]=(prev[next]+1) || 1;
    
            return prev;
        },{})
    }
    
    console.log(a());  

    第二种 双重循环对比法

     实现理论:定义一个空数组,第一个循环循环数组,然后创建一个变量存放当前值,然后再创建一个变量存放出现次数,第二个循环跟第一个循环的数据进行对比,如果存在次数变量就加1,对比过的让他的值变成-1,最后当前值不不等于-1.存入新的数组

    
    
    var arr=['a','a','d','c','f','d','我','我','他',2,2,5,4,6,8];
    function arrCheck(arr:any){
        var newArr = [];
        for(var i=0;i<arr.length;i++){
            var temp=arr[i];
            var count=0;
            for(var j=0;j<arr.length;j++){
                if(arr[j]==temp){
                    count++;
                    arr[j]=-1;
                }
            }
            if(temp != -1){
                newArr.push(temp+","+count)
            }
        }
        return newArr;
    }
    arrCheck(arrs);

      第三种,最简单

      实现理论: 定义一个空对象,循环这个数组,判断如果对象里面有这个属性就给这个值加1(使用hasOwnProperty),没有呢就把这个属性添加到这个对象中,设置初始值为1

    var arr=['a','a','d','c','f','d','我','我','他',2,2,5,4,6,8];
    var obj={};
     for(let i=0;i<arr.length;i++){
         if(obj.hasOwnProperty(arr[i])){
             obj[arr[i]] +=1;
         }else{
             obj[arr[i]] =1;
         }
     }
    console.log(obj);
  • 相关阅读:
    粗浅看Struts2和Hibernate框架
    使用nexus搭建Maven私服
    在线支付功能的设计及其实现
    用户注册的邮箱激活模块的设计与实现
    WebService案例入门(基础篇)
    过滤器应用案例分析
    Java web文件上传下载
    Servlet常用操作(基础)
    AndroidStudio中导入SlidingMenu报错解决方案
    新浪微博Oauth2.0授权认证及SDK、API的使用(Android)
  • 原文地址:https://www.cnblogs.com/zxbky/p/13412985.html
Copyright © 2011-2022 走看看