我在使用 javascript 进行计算时遇到了一些问题
Having some problem in my calculation with javscript
我试图在数组中添加一个值,直到总和为 1000。我一直在尝试使用带有 if 条件的 for 循环。但它不会根据总和值停止。
示例数组 [110.110.225,130,150,100,240,170,100,110,...]
我希望在值的总和 = 1000 或任何其他特定总和时停止循环。
需要帮助。
我们可以看一下您的代码示例吗?
您可以使用 for 循环来检查总和,如果总和达到您想要的值以上,则使用 break 退出循环。
这将通知需要多少数字才能达到 1000 并存在循环:
for (var i = 0; i < numbers.length ; i++) {
var sum = 0;
sum += numbers[i];
if (sum > 1000) {
alert(i);
break;
}
}
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");
}
我试图在数组中添加一个值,直到总和为 1000。我一直在尝试使用带有 if 条件的 for 循环。但它不会根据总和值停止。 示例数组 [110.110.225,130,150,100,240,170,100,110,...] 我希望在值的总和 = 1000 或任何其他特定总和时停止循环。 需要帮助。
我们可以看一下您的代码示例吗?
您可以使用 for 循环来检查总和,如果总和达到您想要的值以上,则使用 break 退出循环。
这将通知需要多少数字才能达到 1000 并存在循环:
for (var i = 0; i < numbers.length ; i++) {
var sum = 0;
sum += numbers[i];
if (sum > 1000) {
alert(i);
break;
}
}
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");
}