我在使用javscript进行计算时遇到问题

问题描述 投票:-1回答:2

我正在尝试在数组中添加值,直到总和为1000。我一直在尝试使用带if条件的for循环。但它不会根据总和值停止。示例数组[110.110.225,130,150,100,240,170,100,110,...]我希望一旦值的总和= 1000或任何其他特定的总和就停止循环。请帮助。

javascript arrays google-apps-script google-sheets nsarray
2个回答
0
投票

我们可以看到您的代码示例吗?

您可以使用for循环来检查总和,如果总和达到所需值以上,则可以使用break来存在该循环。

这将通知需要多少个数字才能达到1000,并存在该循环:

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

var sum = 0;
sum += numbers[i];

if (sum > 1000) {
  alert(i);
  break;
  }

}

0
投票
function stopWhenSumEqualsN(n,A) {
  var n=n||500;
  var A=A||[110,110,225,130,150,100,240,170,100,110];
  let obj=A.reduce(function(a,v,i){
    if(a.sum<a.threshold) {
      a.sum+=Number(v);
      a.maxidx+=Number(1);
    }
    return a;
  },{sum:0,maxidx:0,threshold:n});
  let msg=Utilities.formatString('sum: %s maxidx: %s threshold: %s',obj.sum,obj.maxidx,obj.threshold);
  msg+='<br /><input type="text" id="nin" value="' + n + '" /> n<br />';
  msg+='<textarea id="Ain" rows="4" cols="60">' + A.join(",") +  '</textarea>A<br /><input type="button" value="Execute" onclick="runAgain();" />';
  msg+='<input type="button" value="Start Again From Scratch" onClick="google.script.run.stopWhenSumEqualsN();" />';
  msg+='<script>function runAgain(){let n=document.getElementById("nin").value;let A=document.getElementById("Ain").value.split(",");google.script.run.stopWhenSumEqualsN(n,A);}</script>'; 
  SpreadsheetApp.getUi().showModelessDialog(HtmlService.createHtmlOutput(msg), "Results");
}
© www.soinside.com 2019 - 2024. All rights reserved.