Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

181
Views
¿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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!