Apply a list of functions to a value in Ramda

后端 未结 1 968
长情又很酷
长情又很酷 2020-12-31 07:45

How would I best create this function in Ramda?

function get_list (value) {
  return [
    first_transform(value),
    second_transform(value)
  ]
}

get_lis         


        
相关标签:
1条回答
  • 2020-12-31 08:05

    You've got a few options for this.

    Assuming your functions are already in a list:

    transforms = [first_transform, second_transform];
    

    The first option is to use R.juxt, which does pretty much exactly what you're after by creating a new function that applies the list of given functions to the values received by the new function.

    get_list = R.juxt(transforms);
    

    Another option is R.ap, which applies a list of functions to a list of values. R.of can be used to wrap the value in an array.

    get_list = R.compose(R.ap(transforms), R.of);
    

    Or lastly, R.map could be used to receive each function in the list and return the result of applying it to the value.

    get_list = value => R.map(fn => fn(value), transforms);
    
    0 讨论(0)
提交回复
热议问题