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

246
Visualizações
¿Cómo filtrar las entradas de objetos para mantener solo aquellos cuyas claves comienzan con una cadena, usando ramda?

Teniendo la siguiente matriz:

 const vegsAndFruits = [ { "fruit_banana": 10, "fruit_apple": 1, "veg_tomato": 3, "fruit_watermelon": 11 }, { "veg_carrot": 3, "veg_garlic": 11, "veg_potato": 0, "fruit_apricot": 22 }, { "veg_eggplant": 2, "veg_cabbage": 1, "fruit_strawberry": 100, "fruit_orange": 30 } ]

Quiero filtrarlo para devolver la misma matriz pero para mantener solo las propiedades que comienzan con "fruit" .

Rendimiento esperado

 const expectedOutput = [ { "fruit_banana": 10, "fruit_apple": 1, "fruit_watermelon": 11 }, { "fruit_apricot": 22 }, { "fruit_strawberry": 100, "fruit_orange": 30 } ]

Mi intento

Pensé que la solución debería provenir de mezclar R.startsWith() y R.pickBy() de ramda. Pero lo siguiente no funciona como esperaba:

 const R = require("ramda") R.map(R.pickBy(R.startsWith(["fruit"])),vegsAndFruits)

que regresa

 // [ {}, {}, {} ]

¿Que me estoy perdiendo aqui?

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

0

El predicado R.pickBy se llama con los parámetros value (primero) y key (segundo). Como necesita la key , use R.nthArg para crear una función que devuelva el segundo parámetro:

 const { map, pickBy, pipe, nthArg, startsWith } = R const fn = map(pickBy(pipe( nthArg(1), startsWith('fruit') ))) const vegsAndFruits = [{"fruit_banana":10,"fruit_apple":1,"veg_tomato":3,"fruit_watermelon":11},{"veg_carrot":3,"veg_garlic":11,"veg_potato":0,"fruit_apricot":22},{"veg_eggplant":2,"veg_cabbage":1,"fruit_strawberry":100,"fruit_orange":30}] const result = fn(vegsAndFruits) console.log(result)
 <script src="https://cdnjs.cloudflare.com/ajax/libs/ramda/0.28.0/ramda.min.js" integrity="sha512-t0vPcE8ynwIFovsylwUuLPIbdhDj6fav2prN9fEu/VYBupsmrmk9x43Hvnt+Mgn2h5YPSJOk7PMo9zIeGedD1A==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>

about 4 years ago · Juan Pablo Isaza Relatório

0

La función pickby toma dos parámetros, valor y clave.

Puede ejecutar R.map(R.pickBy((_, key) => key.startsWith('fruit')),vegsAndFruits) para obtener el resultado que desea.

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