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

84
Visualizações
Filtre una matriz por tipo, dependiendo de otra

Necesito crear dos resultados de body_Task dependiendo de Header_Tasks.type

Tareas_del_encabezado

 [ {"_id":"AAA54" "title":"task 1" "type":1}, {"_id":"bbb45" "title":"task 2" "type":2}, {"_id":"ccc56" "title":"task 3" "type":1}, {"_id":"xxx98" "title":"task 4" "type":2}, ]

Lo he creado dependiendo de Header_Tasks, su nombre es body_taks, guardo los datos (header, body) en mi base de datos porque tiene otras funciones en mi proyecto

body_taks

 { "AAA54":10, "AAA54|max":10, "bbb45":07, "bbb45|max":20, "ccc56":05, "ccc56|max":30, "xxx98":03, "xxx98|max":15, }

Lo deseo, dos resultados dependiendo de Header_Tasks.type

tipo 1

 { "AAA54":10, "AAA54|max":10, "ccc56":05, "ccc56|max":30, }

tipo 2

 { "bbb45":07, "bbb45|max":20, "xxx98":03, "xxx98|max":15, }
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Esto se puede hacer con un 'agrupar por' bastante estándar, creando primero un Mapa para buscar tipos y luego agrupando por tipo en el objeto de resultado.

 const headerTasks = [{ _id: "AAA54", title: "task 1", type: 1 }, { _id: "bbb45", title: "task 2", type: 2 }, { _id: "ccc56", title: "task 3", type: 1 }, { _id: "xxx98", title: "task 4", type: 2 },]; const bodyTasks = { AAA54: 10, "AAA54|max": 10, bbb45: "07", "bbb45|max": 20, ccc56: "05", "ccc56|max": 30, xxx98: "03", "xxx98|max": 15, }; const typeMap = new Map(headerTasks.map((t) => [t._id, t.type])); const result = {}; for (const key in bodyTasks) { const id = key.includes("|") ? key.slice(0, key.indexOf("|")) : key; const t = typeMap.get(id); if (t !== undefined) { result[`type${t}`] ??= {}; result[`type${t}`][key] = bodyTasks[key]; } } console.log(result);

Nota: he convertido los números precedidos por 0 en cadenas, ya que [los literales octales] no están permitidos en modo estricto y no estaba seguro de si los pretendías como octales.

about 4 years ago · Juan Pablo Isaza 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