簡體   English   中英

可能在jQuery / Javascript中有條件地$ .map項目

[英]Possible to conditionally $.map items in jQuery/Javascript

是否可以在jquery的$ .map中添加條件?

我的代碼是:

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

我只想映射對象,如果extra.count()是大於0的數字。那么偽代碼:

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

謝謝,

標記

如果您不想的話,甚至不必使用jQuery的map函數。 從代碼的外觀來看,您只是映射一個對象數組,因此use可以使用本機JS 映射過濾器功能。

var extrasToSave = arr
  .filter(function (el) { return el.count()  > 0; })
  .map(function (el) {
     return {
        Descr: el.description,
        Pr: el.price,
        Cnt: el.count()
    }
  });

是的,這是可能的,但是您仍然需要從回調函數返回一些信息。 您可以返回nullundefined以從結果數組中刪除該項。 所以這樣的事情應該工作:

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回調的可能返回值

該函數可以返回:

  • 轉換后的值,該值將映射到結果數組
  • nullundefined ,刪除項目
  • 值數組,將其展平為整個數組

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM