每12个计数计算值

时间:2019-03-01 20:32:33

标签: javascript arrays for-loop

function myFunction() {
  diff = 2;
  var l = 12;

  b = document.getElementById("yee").value;

  var a = Number(document.getElementById("base").value);
  var aa = (a * b) / 100;
  z = aa;
  var r = "";
  k = 0;
  m = 0;
  e = 0;
  z = 0;
  
  const yr_arr = [];
  for (var i = 0; i < diff; i++) {
    if (i) {
      var hk = (aa * document.getElementById("per").value) / 100;
      aa += Number(hk);

    }
    n = m;

    
    for (var j = 0; j < l; j++) {

      var d = ((aa * n) * 5) / 12 / 100;
      var f  = d+z;

      r += k + 1 + ") " + aa.toFixed(2) + "---" + f.toFixed(2) + "<br/>";
      k++;
      n++;
      
      yr_arr.push({ x: aa });
    }
    
  
    r += "";
    m++;
    z = z + d;

  }
  
  const yr_result = yr_arr.reduce( ( sum, { x } ) => sum + x , 0);
	document.getElementById("yr_demo1").innerHTML += yr_result.toFixed(2);
    
  document.getElementById("demo").innerHTML += r;
}
<div>
  <span>Base Quantity</span>
  <input type="text" id="base" value="10000" />
</div>
<div>
  <span>Base Percent</span>
  <input type="text" id="yee" value="12" />
</div>
<div>
  <span>Whole Percent</span>
  <input type="text" id="per" value="10" />
</div>

<button onclick="myFunction()">Click</button>

<p id="demo"></p>

<p id="yr_demo1"></p>

在这里,我试图计算一些百分比并显示它。另外,我试图得到第二列的总价值。我使用javascript reduce实现了它。

例如,在上面的代码中,您可以看到1200显示12次,而1320显示接下来的12次。我可以得到总值30240(12 * 1200 + 12 * 1320)。但是,我也想每12个计数打印一次。我想在12个计数后显示14400,然后在下一个12个计数后显示15840。

输出,我期望的是

enter image description here

1 个答案:

答案 0 :(得分:0)

您可以在生成第一个for循环时就已经计算出总和,而不是在生成数组后计算总和。

然后,您可以使用Remainder operator %来检查索引i是否可被12整除并将行添加到r。

      …
      yr_arr.push({ x: aa });
    }

    sum += aa;

    if (i % 12 === 0) r += aa + "<br/>";

那么就不需要映射了。