Dado un objeto que se ve así:
let obj = { mytest: [{ mytest2: 123 }] }Hubiera pensado que podría usar la cadena implícita así:
_(obj).get('mytest').map('mytest2').value();Pero me sale un error:
VM922:1 Uncaught TypeError: mytest2 is not a function at Array.map (<anonymous>) at <anonymous>:1:22 (anonymous) @ VM922:1 Parece esperar que el parámetro del map sea una función. Si uso el método de chain explícito, parece que funciona.
_.chain(obj).get('mytest').map('mytest2').value(); [123]¿Que está pasando aqui? Estoy usando lodash 4.17.15.
El _(obj) no es una "cadena implícita", es un objeto de uso único que envuelve un valor para hacer que las funciones de lodash estén disponibles con la sintaxis del método. _(obj).get('mytest') es lo mismo que _.get(obj, 'mytest') y devuelve la matriz sin [{ mytest2: 123 }] . El método .map al que está llamando no es _.map , es el método de map de matriz que requiere un argumento de función. Tampoco necesitaría llamar a .value() en el valor de retorno.