Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

190
Visualizações
Estoy tratando de devolver solo elementos en una matriz que contienen una clave coincidente con un valor verdadero donde la clave proviene de una matriz separada

Breve ejemplo:

pieza de estado: ['youth', 'college'];

Objeto de evento:

 { name: theEvent, ageDivisions: { youth: true, middleSchool: true, highSchool: true, college: true open: false }, }

lo que quiero lograr

Quiero filtrar a través de múltiples objetos de eventos y solo regresar cuando el evento al menos contiene todas las cadenas coincidentes en la matriz de estado. esta matriz se crea en función de lo que el usuario selecciona del formulario (imagen a continuación)

Formulario que llena el usuario

Mi enfoque hasta ahora:

Hasta ahora, mi enfoque ha sido convertir el parámetro de divisiones de edad de los eventos en una matriz de matrices que contienen la clave y el valor. Posiciones 1 y 2 respectivamente

Aquí está el código:

códigoPenLink

 if (filterParamaters.ageDivisions !== undefined && filterParamaters.ageDivisions.length != false) { let parsedEvents = events.data.map(({ attributes: event }) => { return { ...event, ...event.attributes, ageDivisions: JSON.parse(event.ageDivisions), eventStyles: JSON.parse(event.eventStyles), } }) console.log({ parsedEvents }); filteredEventss = parsedEvents.filter((event) => { // make event .attributes.ageDivisions object an array of key value pairs console.log({ eventThatWeAreFiltering: event }); if ((event.ageDivisions !== undefined && event.ageDivisions !== null)) { let eventAgeDivisions = Object.entries(event.ageDivisions); console.log({ theAgifiedObject: eventAgeDivisions }); // This maps through each object in the Object key value pair Array // It might be easier to use map and just chang the array to only have the matching values let onlyTrueEventAgedivisions = eventAgeDivisions.map((ageDivision, index) => { console.log({ theAgeDivision: ageDivision[2] }); if (ageDivision[2] === true) { return [ageDivision[0], ageDivision[2]]; } else { return false; } }) console.log({ theTrueEventAgedivisions: onlyTrueEventAgedivisions }); } }) console.log({ theFinishedFilteredevents: filteredEventss }); }
about 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Lo que hice fue verificar si ageDivisions existía en cada objeto y, si es así, ejecutar esta lista filterParameters.ageDivisions , verificando si todas las propiedades que desea que sean verdaderas están configuradas como verdaderas.

 const result = parsedEvents.filter((e) => e.ageDivisions && filterParameters.ageDivisions.every(prop => e.ageDivisions[prop])) console.log(result);
about 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda