统计一个数组中每个元素出现的次数以及哪个字符出现的最多,出现了几次

232 阅读1分钟

小伙伴们,今天来和大家分享一道关于求一个数组中每个元素出现的次数以及那个元素出现的最多出现了几次的题~~

<script>

   //  方式一
    const arr = ["b", "c","b", "c","a", "b", "c",'c']
 
    const obj = {}
 
    // 统计每个元素出现的次数
 
    for(let i=0;i<arr.length;i++){
 
      let a=arr[i]
 
      // 把数组中的每一项元素作为属性名,出现的次数作为值存入对象
 
      // 如果有值,表示出现过,那么就++
 
      if(obj[a]){
 
        obj[a]++
 
      }else{
 
        // 如果没有值,把其属性值设置为1
 
        obj[a]=1
 
      }
 
    }
 
   console.log(obj) // ==> {a:1, b: 3, c: 4}
   
     //  方式二:利用reduce
   const obj = arr.reduce((sum,item)=>(sum[item]?sum[item]++ :    (sum[item]=1),sum),{})
   console.log(obj) // ==> {a:1, b: 3, c: 4}

 
  //  假设数组第一项元素出现的次数最多
 
  let b =arr[0]
 
  let val=obj[b]
 
  // 遍历对象
 
  for(let k in obj){
 
    if(val<obj[k]){
 
      val=obj[k]
 
      b=k
 
    }
 
  }
 
  console.log(`数组中${b}字符出现的最多,出现了${val}`);
 
  
 
  </script>
一只来自前端的小菜鸟~~~