简体   繁体   中英

Ramda.js: Arguments to list

Trying to figure out Ramda here. Does Ramda have a method to turn arguments to a list? Eg:

R.argumentsToList(1)(2) => [1, 2]

The problem that I'm actually facing is that my function is passed 2 arguments and I need to work with both arguments, yet R.compose only allows the rightmost function to work with multiple arguments. Turning my arguments to a list would allow me to bypass this - or would that be a bad approach?

Practical problem: I want to pass 2 strings into my function. Those should be turned into a merged object, eg:

f('firstString', 'second') => {firstString: 'firstString', second: 'second'}

I know that I can use R.merge and R.objOf , but I don't know how to handle and work with the 2 arguments that are passed to the function.

Creating a list function is one of the recipes in the Ramda Cookbook . It turns out to be fairly simple:

var list = R.unapply(R.identity);
list(1, 2, 3); // => [1, 2, 3]

This is based on the simple unapply , which converts a variadic function into one that accepts an array.

I managed to do this with R.useWith :

R.useWith(R.concat, [R.of, R.of])

However, I'm not sure if this is the easiest/best solution for this, because I'm very inexperienced. Maybe someone with more experience can share their knowledge?

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM