1

jquery で $.map に条件を追加することは可能ですか?

私のコードは次のとおりです。

var extrasToSave = $.map(self.extras(), function (extra) {
                return {
                    Descr: extra.description,
                    Pr: extra.price,
                    Cnt: extra.count()
                };
            });

が 0 より大きい数値の場合にのみ、オブジェクトをマップしたいextra.count()ので、疑似コード:

var extrasToSave = $.map(self.extras(), function (extra) {
           if (extra.count()>0)
             {
                return {
                    Descr: extra.description,
                    Pr: extra.price,
                    Cnt: extra.count()
                };
              }
            });

ありがとうございました、

マーク

4

2 に答える 2

1

はい、可能ですが、コールバック関数から何かを返す必要があります。結果の配列からアイテムを返すnullか、削除することができます。undefinedしたがって、次のようなものが機能するはずです。

var extrasToSave = $.map( self.extras(), function ( extra ) {
  if ( extra.count() > 0 ) {
    return { 
      Descr: extra.description,
      Pr: extra.price,
      Cnt: extra.count()
    };
  } else { return undefined; }
});

$.mapドキュメントでコールバックの可能な戻り値を確認してください

この関数は以下を返すことができます:

  • 結果の配列にマップされる変換された値
  • nullまたはundefined、アイテムを削除するには
  • 完全な配列にフラット化される値の配列
于 2013-09-18T10:19:53.533 に答える