【发布时间】:2016-01-17 03:11:12
【问题描述】:
非常简单的 sn-p 代码(我是编程新手),我被难住了。
为什么无论 IF 语句是否为真,控制台每次循环都返回 0?
例如,IF 语句运行,找到匹配项并将 1 写入控制台,但随后 ELSE 语句也运行,重置变量“count”。
//Snippet of the array of objects, that the program searches through
var students = [
{
name: 'Dave',
track: 'Front End Development',
achievements: 158,
points: 14730
},
{
name: 'John',
track: 'Full Stack',
achievements: '24',
points: '2450'
}
];
//Declaring variables
var message = '';
var student;
var count = 0;
var name;
var search;
while (true) {
search = prompt("Enter a name to see their report, or type 'quit' to exit.");
if (search.toUpperCase() == 'QUIT' || search.toUpperCase() == null) {
console.log(8);
break;
}
for (i = 0; i < students.length; i++) {
student = students[i];
name = search.toUpperCase();
if (name == student.name.toUpperCase()) {
count ++;
console.log(count);
} else {
count = 0;
console.log(count);
}
}
}
【问题讨论】:
-
你总是得到
false为name == student.name.toUpperCase()。请编写完整的代码,以便其他人可以帮助您。并使用++count;然后count++ -
name或student.name.toUpperCase()其中之一是返回false值。因此控制台返回 0。彻底调试您的代码。还将count变量初始化为for loop之外的0@ -
students和name变量的值是多少? -
我现在更新了代码@AnkitKathiriya
标签: javascript if-statement for-loop