2012-04-20 12 views
1

リスト内の行をループしています($.each)。各行に$.eachのフィルタを適用しています。私は一致しない行をスキップしたいと思います。私はfiltervalueは、指定されたフィルタに一致しない場合は、ネストされた$.eachループが行をスキップする取得できますか

$.each(data, function(i, row) { 
    count  = parseInt(row['n']); 
    year  = row['year']; 

    if (options.filters) { 
     $.each(options.filters, function(filter, filtervalue) { 
      if (row[filter] != filtervalue) return true; 
     }); 
    } 

    // Will only get here if all filters have passed 
} 

:それはちょっと、このように見えますか?

答えて

1

filtervalueが一致しないフィルタが1つでもない場合は、行をスキップします。その後、filtervalueが少なくとも1つのフィルタと一致する場合は、行をスキップしないでください。

$.each(data, function(i, row) { 
    count  = parseInt(row['n']); 
    year  = row['year']; 


    // if there are no filters, don't skip the row (right? ;-) 
    var skipRow = !!options.filters; 

    if (options.filters) { 
     $.each(options.filters, function(filter, filtervalue) { 
      if (row[filter] == filtervalue) { 
       skipRow = false; 
      } 
     }); 
    } 

    if (skipRow) return true; 
} 
関連する問題