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

145
Vistas
JavaScript​ program that​ displays​ a list​ of​ names​ according​ to​ ​the Subject​ group
let a = 
[
    {
        Name: 'Josh',
        Subject: ['Biology', 'Chemistry'],  
    },
    {
        Name: 'James',
        Subject: ['Chemistry', 'Physics'],
    },
    {
        Name: 'Mary',
        Subject: ['Physics', 'Mathematics'],
    },
]

const result = a.reduce((groupedSubject, person) => {
    const Subject = person.Subject
    if(groupedSubject[Subject]== null) groupedSubject[Subject] = []
    groupedSubject[Subject].push(person)
    return groupedSubject
}, {})
    console.log(result)

I was able to group according to the subject, but subject is an array. how do i group it by individual subjects?
about 4 years ago · Santiago Gelvez
2 Respuestas
Responde la pregunta

0

You need to iterate Sports array as well.

const
    data = [{ Name: 'Ravindra', Sports: ['Chess', 'Cricket'] }, { Name: 'Ravi', Sports: ['Cricket', 'Football'] }, { Name: 'Rishabh', Sports: ['Table-Tennis', 'Football'] }],
    result = data.reduce((groupedSports, person) => {
        person.Sports.forEach(sport => {
            groupedSports[sport] ??= [];
            groupedSports[sport].push(person.Name);
        })
        return groupedSports;
    }, {});

console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }

about 4 years ago · Santiago Gelvez Denunciar

0

You can iterate over all sports and check if it already exists, if not, spread all current entries and add the new persons Name to the array.

let a = [{
    Name: 'Ravindra',
    Sports: ['Chess', 'Cricket'],
  },
  {
    Name: 'Ravi',
    Sports: ['Cricket', 'Football'],
  },
  {
    Name: 'Rishabh',
    Sports: ['Table-Tennis', 'Football'],
  },
]

const result = a.reduce((groupedSports, person) => {
  person.Sports.forEach((sport) => {
    groupedSports[sport] = groupedSports?.[sport]
      ? [...groupedSports[sport], person.Name]
      : [person.Name];
  });
  return groupedSports;
}, {});

console.log(result)

about 4 years ago · Santiago Gelvez 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