gpt4 book ai didi

javascript - 尝试使用 for 循环对值求和时出错

转载 作者:行者123 更新时间:2023-12-03 01:06:57 26 4
gpt4 key购买 nike

每次运行它,都给我时间!无限循环。该错误可能出现在我的第二个循环中,但我已经尝试将其转到外部,但仍然给出错误。

找不到错误,有什么帮助吗?

谢谢

打印值时仍有问题,有帮助吗?

我试图获取所有值和总和,然后用新的变量打印总和。

college.Debug.setWebContentsDebuggingEnabled(true);


var workflow_value = [
'Enter Value 1',
'Enter Value 2',
'Enter Value 3'
]

var questionsAndValues = {};

for (var i = 0; i < workflow_value.length; i++) {
var fieldName = workflow_value[i];
var fieldValue = college.getJobWorkflowValueByName(fieldName);
if (fieldValue && fieldValue != '') {
questionsAndValues[fieldName] = fieldValue;
}
}

var values = [];
var sumOfValues = 0;


for (value in questionsAndValues){

var current_value = parseFloat(questionsAndValues[value]);
if (!isNaN(current_value)) {
sumOfValues += current_value;
}
else {
console.log('invalid values');
}
}

questionsAndValues['Total Value'] = sumOfValues;

var okShowText = function(){

};

var cancelShowText = function(){

};



$(document).ready( function() {

college.Dialog.showProgressDialog('Loading Data...');

for (var question in questionsAndValues){
var rowToAppend = '<div style="min-height:40px;border-bottom: solid 1px gray"><div style="min-width:38%; max-width:38%; display:inline-block; height:40px; border-right: solid 1px gray"><div style="padding:5%">' + question + '</div></div>' +
'<div style="min-width:60%; max-width:60%; display:inline-block; margin-left:5px"><div>' + questionsAndValues[question] + '</div></div></div>'

$('#detailsView').append(rowToAppend);
}
console.log(JSON.stringify(questionsAndValues));
console.log(sumOfValues);
college.Dialog.hideProgressDialog();

// console.log (sumOfValues);
var options = {
"title":"Total of values is",
"text": "The total value is " + sumOfValues,
"ok_label":"Yes",
"cancel_label":"Do Nothing"
}

college.Dialog.showText("okShowText","cancelShowText",options)

});

最佳答案

变量的范围仅限于函数,因此所有 var i 都与完全相同的变量进行交互。因此,当内部循环运行时,它会丢弃外部循环的计数。如果您使用 let 来代替,那么它们将具有 block 作用域并且不会互相践踏。

切换到 let 后,您仍然会有一个使用相同变量名称的外循环和内循环。您应该为这些使用不同的名称,这样您就不会在访问时混淆哪个名称。

for (let i = 0; i < workflow_value.length; i++) {
const fieldName = workflow_value[i];
const fieldValue = college.getJobWorkflowValueByName(fieldName);
if (fieldValue && fieldValue != '') {
questionsAndValues[fieldName] = fieldValue;
}

const values = [];
let sumOfValues = 0;

for (let j = 0; i < workflow_value; j++) {
const current_value = college.getJobWorkflowValueByNam(workflow_value[j]);
values.push(current_value);
}


for (let j = 0; j < values.length; j++) {
const current_value = parseFloat(values[j]);
if (!isNaN(current_value)) {
sumOfValues += parseFloat(values[j]);
} else {
console.log('invalid values');
}
}
}

关于javascript - 尝试使用 for 循环对值求和时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52354605/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com