2017-01-24 9 views
0

私は、json配列値を+ =、または=を使用してハンドルバーで集計する方法を見つけようとしています。しかし、私は正しく行う方法についてのガイドラインを見つけることができないようです。どのようにハンドルバーのヘルパーにこの繰り返しを変換するかについて誰かが私を導くことができますか?ハンドルバー+ =、 - =条件を満たす場合

var table = $("#table tbody"); 
$.getJSON("front-end/ajax/bethistory.php", function(data) { 
    var value = 0; 
    $.each(data, function(a, b) { 
     if (b.action == "win") { 
      value += parseFloat(b.coins); 
     } else if (b.action == "lose") { 
      value -= parseFloat(b.coins); 
     } 
     var tbody = $("<tr/>").append($("<td/>").html(b.action), $("<td/>").html(value)) 
     table.append(tbody); 
    }); 
}); 

このようなものはありますか?

var value = 0; 
Handlebars.registerHelper("this_val", function(a,b) { 

     if (a == "win") { 
      value += parseFloat(b); 
     } else if (a == "lose") { 
      value -= parseFloat(b); 
     } 

     return value; 

}); 
+0

あなたの質問を理解できません。あなたはこれについて話していますか? 値+ =(b.action === "win" ?: parseFloat(b.coins): parseFloat(b.coins)*(-1) ); – celerno

答えて

1

が必要です。私はそれを把握することができたthanks to this post

Handlebars.registerHelper("compute", function(array, options) { 

     var new_array = "", 
     value = 0, 
     count = array.length; 

     for (var i = 0; i < array.length; i++) { 

      var coins = Number(array[i]['coins']), 
      action = array[i]['action']; 

      if (action == "win") { 
       if (coins > 0) { 
        value += coins; 
       } 
      } else if (action == "lose") { 
       if (coins > 0) { 
        value -= coins; 
       } 
      } 

      array[i]['running'] = value; 
      new_array += options.fn(array[i]); 
     } 
     return new_array; 
    }); 
関連する問題