我按照上一个问题的建议来获取我向数组添加值的提示,但是它导致我的程序在不存在时抛出True值。
HIGHEST_GRADE = 7;
LOWEST_GRADE = 0;
var course = new Array();
var grade = new Array();
while(confirm("Would you like to add a course?")){
course.push( prompt("Enter the course code. Example - ABC1234") );
};
var upperTest = course.slice(0,3);
var integerTest = course.slice(4,7);
if (course.length !== 7) {
alert ('Invalid Course Code');
}
if (upperTest !== upperTest.toUpperCase()) {
alert ('Invalid Course Code');
}
if (isNaN(integerTest)) {
alert('Invalid Course Code');
}
if (isNaN(grade)) {
alert('Invalid Grade');
}
if (LOWEST_GRADE > grade || HIGHEST_GRADE < grade) {
alert('Invalid Grade');
}
我设置它以确保输入的文本符合条件,但是因为添加了.push,所以整个事情就会结束。
我收到一个无效的课程代码错误,正在播放一些内容。
答案 0 :(得分:1)
Array
用于存储多个课程,这很好。但是,由于它是一个数组,您需要访问它的每个位置以使用循环验证每个个人课程:
var courses = new Array(); // use the name courses instead, to indicate that it's a collection
for (var i = 0; i < courses.length; i++) {
var course = courses[i];
var upperTest = course.slice(0,3);
var integerTest = course.slice(4,7);
if (course.length !== 7) {
alert ('Invalid Course Code');
}
if (upperTest !== upperTest.toUpperCase()) {
alert ('Invalid Course Code');
}
if (isNaN(integerTest)) {
alert('Invalid Course Code');
}
}
这将验证course
中的每个Array
。否则,当您测试courses.length
时,您将验证数组中元素的数量,不每个课程的字符数。
grades
数组需要做同样的事情。
答案 1 :(得分:0)
您想验证输入的课程代码吗?在这种情况下,您需要使用不使用整个数组的项目来执行此操作:
while (confirm("...")) {
var courseCode = prompt("...");
var upperTest = course.slice(0,3);
var integerTest = course.slice(4,7);
if (courseCode.length !== 7) {
alert ('Invalid Course Code');
continue;
}
// place your other if's here
courses.push(courseCode);
}