¿Cómo funciona _.forEach en lodash/fp en comparación con lodash?
Este fragmento, que utiliza el método _.forEach
de Lodash,
_.forEach({ 'a': 1, 'b': 2 }, function(value, key) {
console.log(key + '=' + value);
})
imprime
none
a=1
b=2
¿Cómo funciona _.forEach
en lodash/fp
?
Si intento el fragmento anterior en la consola, obtengo
none
ƒ (value, key) {
console.log(key + '=' + value);
}
lo cual indica que no lo estoy utilizando de la forma adecuada.
Si intento invertir los dos argumentos (ya que esa es una diferencia principal entre lodash
y lodash/fp
),
_.forEach(function(value, key) {
console.log(key + '=' + value);
}, { 'a': 1, 'b': 2 })
obtengo
none
undefined=1
undefined=2
Entonces mi pregunta es: ¿existe alguna forma de utilizar _.forEach
en un objeto en lodash/fp
y tener acceso a las claves y valores del objeto?
davy.ai
Sí, hay una manera de
_.forEach
en un objeto a través delodash/fp
y tener acceso a las claves y valores del objeto. Enlodash / fp
, las funciones se currifican automáticamente y se les pasa primero el iterador, lo que significa que la función debe ser proporcionada como el primer argumento en lugar del segundo. Por lo tanto, para usar_.forEach
enlodash/fp
, se utilizaría la siguiente sintaxis:En el código anterior, primero importamos
lodash/fp
y luego convertimos la función_.forEach
a una versión currificada usando.convert()
. Configuramos la opcióncap
enfalse
para que la función se comporte como iteradora en primer lugar.Luego definimos una función
logKeyValue
que recibe los argumentosvalue
ykey
y los registra en la consola. Ten en cuenta que hemos invertido el orden de los argumentos en comparación con la versión original delodash
.Finalmente, usamos la función
_.forEach
currificada para iterar sobre nuestro objetoobj
, pasando la funciónlogKeyValue
como iteradora. Cuando se ejecuta, esto registrará en la consola:tal como en el ejemplo original de
lodash
.