JavaScript 如何计算对象数组中重复姓名的出现次数

JavaScript 如何计算对象数组中重复姓名的出现次数

给定一个对象数组,任务是根据其值找到给定键的出现次数。

示例:

Input : arr = [
   {
      employeeName: "Ram",
      employeeId: 23
   },
   {
      employeeName: "Shyam",
      employeeId: 24
   },
   {
      employeeName: "Ram",
      employeeId: 21
   },
   {
      employeeName: "Ram",
      employeeId: 25
   },
   {
      employeeName: "Kisan",
      employeeId: 22
   },
   {
      employeeName: "Shyam",
      employeeId: 20
   }
]

key = "employeeName"

Output: [
    {employeeName: "Ram", occurrences: 3} ,
    {employeeName: "Shyam", occurrences: 2},
    {employeeName: "Kisan", occurrences:  1}
]

方法: 在这个方法中,我们按照以下步骤进行操作。

  • 创建一个空的输出数组。
  • 使用forEach迭代输入数组。
  • 检查输出数组是否包含任何包含给定键值的对象。
  • 如果没有,则创建一个新对象,并将对象的键(提供的键名称)设置为值(当前迭代对象的键的值),并将出现次数设置为1。
  • 如果有,则迭代输出数组,并搜索当前迭代的键是否等于输入数组迭代的键,然后将出现次数增加1。

示例:

<script> 
    function findOcc(arr, key){ 
      let arr2 = []; 
        
      arr.forEach((x)=>{ 
           
        // Checking if there is any object in arr2 
        // which contains the key value 
         if(arr2.some((val)=>{ return val[key] == x[key] })){ 
             
           // If yes! then increase the occurrence by 1 
           arr2.forEach((k)=>{ 
             if(k[key] === x[key]){  
               k["occurrence"]++ 
             } 
          }) 
             
         }else{ 
           // If not! Then create a new object initialize  
           // it with the present iteration key's value and  
           // set the occurrence to 1 
           let a = {} 
           a[key] = x[key] 
           a["occurrence"] = 1 
           arr2.push(a); 
         } 
      }) 
        
      return arr2 
    } 
      
      
    let arr = [ 
       { 
          employeeName: "Ram", 
          employeeId: 23 
       }, 
       { 
          employeeName: "Shyam", 
          employeeId: 24 
       }, 
       { 
          employeeName: "Ram", 
          employeeId: 21 
       }, 
       { 
          employeeName: "Ram", 
          employeeId: 25 
       }, 
       { 
          employeeName: "Kisan", 
          employeeId: 22 
       }, 
       { 
          employeeName: "Shyam", 
          employeeId: 20 
       } 
    ] 
      
    let key = "employeeName"
    console.log(findOcc(arr, key)) 
</script>

输出:

[
   {
      employeeName: "Ram",
      occurrence: 3
   }, 
   {
      employeeName: "Shyam",
     occurrence: 2
   }, 
   {
    employeeName: "Kisan",
    occurrence: 1
   }
]

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程