Open sktguha opened 4 years ago
Thanks for the suggestion, @sktguha! It is an interesting idea. I'm cross-posting this to our companion project, Underscore-contrib, because I think it should be added there first before we consider making it part of the core library.
In the meanwhile, your particular use case can also be handled using _.partial
:
import _, { partial } from 'underscore';
const safeParseInt = partial(parseInt, _, undefined);
You would be right to point out, though, that partial
cannot handle variadic functions while oneArg
can, so there is definitely an added value here.
Thanks for the reply . Interestingly it is available as unary in lodash. https://bit.dev/lodash/lodash/unary
I suggest adding a new function called oneArg to underscore. It wraps a function and allows it to be called with one argument only and ignores rest of the arguments. Implementation:
const oneArg = fn => arg => fn(arg);
usage: Before oneArg:
['34','11','19','199','201'].map(parseInt); // returns [34, NaN, 1, 1, 33]
After oneArg:
const safeParseInt = oneArg(parseInt); ['34','11','19','199','201'].map(safeParseInt) // returns [34, 11, 19, 199, 201]