Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

182
Vistas
¿Cómo funciona _.forEach en lodash/fp en comparación con lodash?

Este fragmento, que usa _.forEach de _.forEach ,

 _.forEach({ 'a': 1, 'b': 2 }, function(value, key) { console.log(key + '=' + value); })

huellas dactilares

 a=1 b=2

¿Cómo funciona _.forEach en lodash/fp ?

Si pruebo el fragmento anterior, en la consola da como resultado

 ƒ (value, key) { console.log(key + '=' + value); }

que está cerca de "No lo estoy usando como debería".

Si trato de invertir las dos entradas (ya que en realidad es una de las principales diferencias entre lodash y lodash/fp ),

 _.forEach(function(value, key) { console.log(key + '=' + value); }, { 'a': 1, 'b': 2 })

yo obtengo

 undefined=1 undefined=2

Entonces mi pregunta es: ¿hay alguna manera de _.forEach en un objeto a través lodash/fp y tener acceso tanto a las claves como a los valores del objeto?

about 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Los parámetros de la función iteratee están limitados en Lodash FP

Citando la documentación:

Argumentos iterados limitados

Los argumentos iterados están limitados para evitar trampas con iterados variados.

 // The `lodash/map` iteratee receives three arguments: // (value, index|key, collection) _.map(['6', '8', '10'], parseInt); // ➜ [6, NaN, 2] // The `lodash/fp/map` iteratee is capped at one argument: // (value) fp.map(parseInt)(['6', '8', '10']); // ➜ [6, 8, 10]

Las diferentes funciones en Lodash FP tendrán el iterado limitado a solo 1 parámetro: _.forEach() está entre ellos. Los únicos tres que tienen el iterado limitado a dos son _.reduce() , _.reduceRight() y _.transform() .


Para iterar sobre claves y valores en Lodash FP, puede usar _.forEach() sobre _.entries() . Como eso da las entradas como pares clave-valor, puede desestructurarlas:

 const obj = { 'a': 1, 'b': 2 }; _.forEach(function([value, key]) { // destructure the pair console.log(key + '=' + value); }, _.entries(obj)) // get as pairs
 <script src="https://cdn.jsdelivr.net/g/lodash@4(lodash.min.js+lodash.fp.min.js)"></script>

Una forma más legible sería componerlos con _.flow()

 const obj = { 'a': 1, 'b': 2 }; const process = _.flow( _.entries, _.forEach(function([value, key]) { console.log(key + '=' + value); }) ); process(obj);
 <script src="https://cdn.jsdelivr.net/g/lodash@4(lodash.min.js+lodash.fp.min.js)"></script>

Finalmente, puede evitar la desestructuración, si lo desea, usando _.spread() :

 const obj = { 'a': 1, 'b': 2 }; const process = _.flow( _.entries, _.forEach(_.spread(function(value, key) { console.log(key + '=' + value); })) ); process(obj);
 <script src="https://cdn.jsdelivr.net/g/lodash@4(lodash.min.js+lodash.fp.min.js)"></script>

about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda