Dada una array de objetos, la tarea es encontrar las ocurrencias de una clave dada de acuerdo con su valor.
Ejemplo:
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} ]
Para lograrlo contamos con los siguientes enfoques:
Enfoque 1:
En este enfoque, seguimos los pasos a continuación.
- Cree una array de salida vacía.
- Usando forEach iterar la array de entrada.
- Compruebe si la array de salida contiene algún objeto que contenga el valor de la clave proporcionada
- De lo contrario, cree un nuevo objeto e inicialice el objeto con la clave (el nombre de la clave proporcionado) establecida en el valor (el valor de la clave del objeto de la presente iteración) y la ocurrencia establecida en el valor 1
- En caso afirmativo, itere la array de salida y busque si la clave de la iteración actual es igual a la clave de la iteración de la array de entrada y luego aumente la ocurrencia a 1.
Javascript
<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>
Producción:
[ { employeeName: "Ram", occurrence: 3 }, { employeeName: "Shyam", occurrence: 2 }, { employeeName: "Kisan", occurrence: 1 } ]
Publicación traducida automáticamente
Artículo escrito por _saurabh_jaiswal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA