Ramdaを使用して簡単なアプリケーションを構築しています。RamdaでArgを2回呼び出す
私は不必要に不合理な機能であると思われるものを作成せずに対処する方法がわからないという機能的な構成の問題にぶつかってきました。
シナリオ:
私はオブジェクトとしてパラメータを渡しています。そここのオブジェクト上の2つの属性があり、それ以外の問題に関連していないいくつかの他のものは、私はそれが国の変更ではないしたい:私は変換することができ、単一のarg機能を持っている
{locCode :<string>, LocationList : [<Location>], someOtherParams : ... }
場所にlocCode: fetchLocByCode
ここに私の望ましい結果がオブジェクトの上に何かに触れることなく、locCode
値をとるfetchLocByCode
に渡し、結果をLocationList
を追加し、新しいLocationList
で新しいオブジェクトを返すようになります。
何かがanalagousへ:私はこれは非常にばかげやって書いてしまったと私は恐ろしく間違って何かを行っていると信じて私をリードしました何
(Param)=>{
Param.LocationList.push(fetchLocByCode(Param.locCode));
return Param;
}
:
const locListLens = R.lens(R.prop('LocationList'),R.assoc('LocationList'))
const appendLocList = (i)=>R.compose(R.over(locListLens),R.append,fetchLocByCode,R.prop('locCode'))(i)(i)
このソリューション "私はいくつかの基本的なアイデアを逃したように見えます。
このシナリオに対処するために、より「標準的な」方法を提示したい人はいますか?
ありがとう! あなたの例は、これがもっと意味を成すのを助けます - 私は本当にポイントフリーで滞在しようと迷っていて、プロパティに直接アクセスすることはまだ完全に可能であることを忘れていました。 –