Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

85
Vistas
JavaScript cuenta la cantidad de veces que se menciona un valor específico en una matriz de objetos

Estoy buscando una solución a un problema que estoy experimentando actualmente con el bucle sobre una matriz que contiene objetos. Dentro de los objetos secundarios, me gustaría acceder al segundo elemento [2], tome su valor en mi ejemplo a continuación;

ventanas, windows_11, linux_sys

Verifique si existen actualmente dentro de una matriz (la matriz comienza vacía, por lo tanto, agregará los valores si aún no existen, y cuente la cantidad de veces que aparece un "Nombre de software" específico en todos los objetos secundarios.

Aquí hay una entrada de ejemplo de mi matriz JSON y lo que tengo actualmente:

 json_output = [ { "id": "1", "Device Name": "device3", "Software Name": "windows" }, { "id": "2", "Device Name": "device6", "Software Name": "windows" }, { "id": "3", "Device Name": "device11", "Software Name": "windows" }, { "id": "4", "Device Name": "device11", "Software Name": "windows_11" }, { "id": "5", "Device Name": "device11", "Software Name": "linux_sys" } ] new_arr = []; for (var i = 0; i < json_output.length; i++) { new_arr.push(Object.values(json_output[i])[2]); }

Esto está devolviendo una lista que contiene:

 ["windows","windows","windows", "windows_11", "linux_sys"]

Si alguien pudiera ayudarme a crear el siguiente, se lo agradecería mucho. En lugar de una matriz como la que tengo actualmente, me gustaría recrear la siguiente;

 software_name_count [ { "windows": "3" }, { "windows_11": "1" }, { "linux_sys": "1" } ]

Gracias a cualquiera que me ayude a superar este problema. Soy relativamente novato con JS. Si hay más información que se requiere por favor hágamelo saber.

ps: no puedo codificar ninguna sección de este código, como los nombres de software windows, windows_11 y linux_sys.

gracias jorge

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Usar un objeto es más útil que una matriz aquí para guardar los datos. Pero puede convertir si es necesario.

 json_output = [ { "id": "1", "Device Name": "device3", "Software Name": "windows" }, { "id": "2", "Device Name": "device6", "Software Name": "windows" }, { "id": "3", "Device Name": "device11", "Software Name": "windows" }, { "id": "4", "Device Name": "device11", "Software Name": "windows_11" }, { "id": "5", "Device Name": "device11", "Software Name": "linux_sys" } ]; new_obj = {}; for (obj of json_output) { let key = obj["Software Name"]; new_obj[key] = json_output.filter(a => a["Software Name"] == key).length; } console.log( new_obj ); // do you need to format this as an array? if so, do this const new_arr = []; for (const [softwareName, count] of Object.entries(new_obj)) { let row = {[softwareName]: count}; new_arr.push(row); } console.log( new_arr );

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda