ビジネスアプリケーション


関数式プログラミング、実戦練習!


  • カートの使用例

  • ケース
  • プレイヤーが新品をカートに入れた場合
  • カートに格納されているサーバから受信したデータがある
  • カートに積み込み、現在積まれているものがカートに入っているか確認
  • 確認後sizes:array[]のnameと一致するものであれば、その物品の数と価格を加算
  • ex)
  •      const server = [
           {
             id: 1,
             sizes: [{ size: "L", name: "item", price: 1000, quantity: 1 }],
           },
         ];
    
         const addToCart = [
           {
             id: 1,
             sizes: [{ size: "L", name: "item", price: 1000, quantity: 2 }],
           },
           {
             id: 2,
             sizes: [{ size: "XL", name: "item2", price: 1000, quantity: 1 }],
           },
         ];
    
    addToCart와 server를 비교해서 새로운 배열 만듦
    
         const result = [
           {
             id: 1,
             sizes: [{ size: "L", name: "item", price: 3000, quantity: 3 }],
           },
           {
             id: 2,
             sizes: [{ size: "XL", name: "item2", price: 1000, quantity: 1 }],
           },
         ];

    スタート!

  • プレイヤーが選んだアイテムをローカルと呼ぶ
  • ・まずgetIntersectionByKey関数でサーバーデータとローカルデータを比較し、重なっている子どもがいるかどうかを見つけます.
  • curry2の場合、2つ以上の因子があれば使えるようです(不正確)

  • fxjsのintersectionWithリピートアイテムを探す.
  • intersectionWith非使用時は以下のように使用可能
  • 現在使用 getTupleByKey関数作成サーバと重複するローカルデータとサーバデータ

  • getTupleByKey関数は、パラメータに移動したキーでインデックスを作成したオブジェクトを使用してtupleを返します.

  • これまでの結果,2列目の1列目はサーバ,2列目はローカルであった.

  • これで、getAddedSizesQuantityという関数を作成し、同じサイズの間に数量、価格を追加します.

  • 我々getAddedSizesQuantity関数が少し複雑です.
  • 先に得たtupleをパラメータとしたaddSizesQuantity地図を回す.
  • addSizesQuantityローカルとサーバデータのサイズ配列を用いてキーが重なるデータを検索する.初めてやったことと同じ
  • オーバーラップした寸法配列を見つけ、mapでsumOfProperites関数を実行します.
  • getMergedは、マージのサイズをサーバデータとマージする関数です.
  • sumOfProperitesobjectの属性の数字で、数字とは数字を加算する関数です.
  • ここまで実行すると、二列プラス数量・価格の寸法配列が完成している.getMerged関数とサーバデータのサイズを加算できるようになりました.
  • getMergedは、調音を受けてサーバデータのみを抽出し、サイズとマージして地図でサイズをマージする関数です.

  • ダダダダ~!頭が爆発するから、今日は休みだ...
    助かります@崔俊