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

221
Visualizações
¿Cómo puedo mejorar esta reducción de JS?

Tengo dos API diferentes que obtuve usando await Promise.all() . Se asignan a una variable llamada items . La response de la API #1 es un objeto que se vería así:

 { total: 3, items: [ {…}, {…}, {…} ] }

La response de la API #2 es solo una matriz de objetos.

Ahora quiero terminar con un objeto que se parece a la response de la API n.º 1, usando un reductor para agregar la longitud de las API n.º 2 al total y 'combinar' la response de la API n.º 2 en la matriz de items .

Esto es lo que he ido para:

 const items = results.reduce((accumulator, { response }) => { const total = response?.total ?? response?.length if(!accumulator?.items) { accumulator.items = [] } accumulator.items = [ ...accumulator.items, ...(response?.items ?? response) ] return ({ ...accumulator, total: (accumulator?.total ?? 0) + total }) }, {})

Mi intuición es que definitivamente podría haber una forma más limpia/estructurada de lograr el mismo resultado. ¿Algún contratiempo importante que deba reconsiderar?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Parece exagerado incluso mirar cualquier total . Tiene las matrices individuales y por longitudes de consecuencia.

Propondría usar flatMap para concatenar todas las matrices y solo crear una propiedad total al final:

 const results = [ { response: { total: 3, items: [1, 2, 3] } }, { response: [4, 5, 6, 7] } ]; const items = (items => ({ items, total: items.length })) (results.flatMap(({response}) => response.items ?? response)); console.log(items);

Personalmente, no crearía la propiedad total en absoluto. items.length hace todo lo que necesita.

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