为了账号安全,请及时绑定邮箱和手机立即绑定

如何在函数式编程中访问两个参数

如何在函数式编程中访问两个参数

30秒到达战场 2021-12-23 14:59:57
我有一个这样的管子pipe(    getUserData,    getLocationData,    someFunctionThatNeedBothUserAndLocationData)(input)我需要一个功能来访问这样的用户和位置数据function someFunctionThatNeedBothUserAndLocationData(user, location){    // do something}我怎样才能在函数式编程中做这样的事情?
查看完整描述

2 回答

?
慕尼黑的夜晚无繁华

TA贡献1864条经验 获得超6个赞

用 不太可能pipe,因为后续函数是一元的(它们将前一个函数的结果作为参数)。一个汇聚功能有助于在这里我想!


const log = (user, location) => {

  console.log(`${user.name} is in ${location}`);

};



const getUserData = () => ({ name: 'Giuseppe' });

const getUserLocation = () => 'Bologna';


R.converge(log, [

  getUserData,

  getUserLocation,

])();

<script src="https://cdnjs.cloudflare.com/ajax/libs/ramda/0.26.1/ramda.js" integrity="sha256-xB25ljGZ7K2VXnq087unEnoVhvTosWWtqXB4tAtZmHU=" crossorigin="anonymous"></script>


查看完整回答
反对 回复 2021-12-23
?
繁华开满天机

TA贡献1816条经验 获得超4个赞

我希望我不会太晚。


const pipedFunction = pipe(

    getUserData,

    getLocationData,

    someFunctionThatNeedBothUserAndLocationData

)(input)


const getLocationData = (userData) => [user, location]


const someFunctionThatNeedBothUserAndLocationData = (arg) => {

  const [user, location] = arg;

}

或者


const pipedFunction = pipe(

    getUserData,

    getLocationData,

    someFunctionThatNeedBothUserAndLocationData

)(input)


const getLocationData = (userData) => {user, location}


const someFunctionThatNeedBothUserAndLocationData = (arg) => {

  const {user, location} = arg;

}


查看完整回答
反对 回复 2021-12-23
  • 2 回答
  • 0 关注
  • 125 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信