繁体   English   中英

在for循环js中更改时不会重新分配变量

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM