【问题标题】:Having some problem in my calculation with javscript在我的 javascript 计算中遇到一些问题
【发布时间】:2020-06-05 15:54:52
【问题描述】:

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

【问题讨论】:

  • 欢迎来到 SO。请向我们展示您到目前为止所做的尝试。
  • 满足条件时在循环中使用break 语句。
  • 也请考虑更新标题。它应该包含 what 问题是什么,而不是 那个 你有问题。例如:For-Loop 在达到破坏条件时不会停止有助于其他有类似问题的人找到您的问题及其答案。

标签: javascript arrays google-apps-script google-sheets nsarray


【解决方案1】:
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");
}

【讨论】:

    【解决方案2】:

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

    您可以使用 for 循环来检查总和,如果总和超过您的期望值,则使用 break 存在循环。

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

    for (var i = 0; i < numbers.length ; i++) {
    
    var sum = 0;
    sum += numbers[i];
    
    if (sum > 1000) {
      alert(i);
      break;
      }
    
    }
    

    【讨论】:

    • 这也适用于 while 循环。当你达到你想要的值时,只需使用break; 来存在循环。
    • 函数 tcharge(closer,currentmonth){ var iniarr,charge,target,sum;收费 = []; iniarr = mcharge(closer,currentmonth); for (var i=0; i
    猜你喜欢
    • 2012-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-29
    • 2020-03-04
    • 1970-01-01
    • 2021-04-17
    • 1970-01-01
    相关资源
    最近更新 更多