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

144
Visualizações
¿Cómo aplicar la composición de funciones o canalizaciones en la función de parámetros múltiples?

En una entrevista, me pidieron que presionara los puntos finales jsonplaceholder /posts y /comments y escribiera una función que devolviera comentarios coincidentes con publicaciones donde comment.postId == post.id y luego crear un objeto JSON completo que contuviera la publicación dentro de los comentarios. eso.

He estado tratando de implementarlo en un enfoque funcional, pero no puedo encontrar una manera de tratar con 2 matrices (2 entradas) como tuberías, composiciones, transductores, todos aceptan funciones unarias.

Incluso pensé en tener dos canales, uno para procesar los comentarios y otro para las publicaciones y unir sus flujos de trabajo al final, pero no pude implementarlo.

Todo lo que se me ocurrió es mapear los comentarios en sí mismos para que sean una matriz de objetos donde tiene postId como un número que representa cada publicación y comments como una matriz de cadenas.

 import axios from 'axios' import _ from 'ramda' const { data: comments } = await axios.get( 'http://jsonplaceholder.typicode.com/comments', ) const cIds = (comments) => _.pipe( _.groupBy(_.prop('postId')), _.map(_.pluck('body')), _.map(_.flatten), _.map(_.uniq), _.toPairs, _.map(_.zipObj(['postId', 'comments'])), )(comments) console.log(cIds(comments))

Entonces, ¿alguien tiene una idea de cómo hacerlo de manera funcional?

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

0

Creo que me estoy perdiendo algo en la pregunta. Esto suena como una función bastante simple. Podría escribirlo algo como esto:

 const consolidate = ([posts, comments]) => posts .map (p => ({ ...p, comments: comments .filter (c => c.postId == p.id) })) const fullPosts = (postUrl, commentUrl) => Promise .all ([axios .get (postUrl), axios .get (commentUrl)]) .then (consolidate) fullPosts ( 'https://jsonplaceholder.typicode.com/posts', 'https://jsonplaceholder.typicode.com/comments' ) .then (console .log, console .warn)
 .as-console-wrapper {max-height: 100% !important; top: 0}
 <script>const axios = {get: (url) => fetch (url) .then (r => r .json ())} // dummy axios</script>

Soy uno de los fundadores de Ramda y un gran admirador, pero no sé si ofrece mucho aquí.

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