[英]Why are 'constant' variable inside loop are not reassigned in JavaScript?
[英]variable is not reassigned when changed in for loop js
当尝试更改变量值时,尽管它是全局的,但它并没有改变:
let avg = 0
let total = 0
let courseNum = prompt("Enter the number of courses you have taken: ");
let CourseInt = parseInt(courseNum);
for (let index = 1; index <= CourseInt; index++) {
const courses = prompt("Enter the grade for course #" + index + ':');
for (let i = 0; i < courses.length; i++) {
if (parseInt(courses[i]) > 50) {
total =+ courses[i];
}
avg = total / courses.length;
}
}
prompt("YOUR AVG: " + avg)
</script>
在提示弹出窗口中,它显示 avg 为0 。
这里:
let courseNum = prompt("Enter the number of courses you have taken: ");
let CourseInt = parseInt(courseNum);
无需将输入值更改为int
并将其存储在不同的变量中,您可以简单地将输入作为数字:
let courseNum = parseInt(prompt("Enter the number of courses you have taken: "));
解决方案
您需要将所有课程输入存储在一个数组中,以便我们可以获得所有数字。然后形成该数组,我们可以获得计数。
let avg = 0 let total = 0 // we need to store our inout numbers in arrayGrade array let arrayGrade = []; let courseNum = parseInt(prompt("Enter the number of courses you have taken: ")); for (let index = 1; index <= courseNum; index++) { const courses = parseInt(prompt("Enter the grade for course #" + index + ':')); arrayGrade.push(courses); //appending all the courses input in arrayGrade } // console.log(arrayGrade) //for each element in arrayGrade get total you can console.log total and arrayGrade[i] for(let i in arrayGrade){ total += arrayGrade[i]; avg = total / arrayGrade.length } prompt('avg is: '+ avg + "\n" + 'total grade is: ' + total)
设置一个空array
let total = [];
然后提示用户输入课程数量courseNum
然后在 for 循环中获取成绩并将这些成绩存储在数组中total
total.push(parseInt(courses));
意思是推送用户输入的数字并将其存储在数组中。 在用户输入他的所有成绩后,例如他已经完成了三门课程,因此成绩提示将循环三次,最后你的数组将看起来像这样“ [66,77,45]
这些都是一个数组中的所有成绩.现在我将这三个等级相加并除以课程数量。希望我能解释一下。你可以在评论中问我任何问题......
let avg = 0; let sum = 0; let total = []; let courseNum = prompt("Enter the number of courses you have taken: "); for (let i = 1; i <= courseNum; i++) { const courses = prompt("Enter the grade for course #" + i); total.push(parseInt(courses)); } for (let j = 0; j < total.length; j++) { sum += total[j]; } avg = sum / total.length alert("YOUR AVG: " + avg)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.