我有一个对象数组,我可以使用 for 循环遍历该数组,如果找到该值,我可以毫无问题地将其打印到页面,但我正在尝试获取一条警报消息如果未找到该值,则显示并继续询问下一个值,直到用户键入 quit。我的代码的问题是,如果找不到值,则警报消息会一直出现,直到循环结束。这是我的代码:
var message = '';
var student;
var search;
function print(message) {
var outputDiv = document.getElementById('output');
outputDiv.innerHTML = message;
}
function getStudentReport( student ) {
var report = '<h2>Student: ' + student.name + '</h2>';
report += '<p>Track: ' + student.track + '</p>';
report += '<p>Points: ' + student.points + '</p>';
report += '<p>Achievements: ' + student.achievements + '</p>';
return report;
}
function findStudent( look ){
for (var i = 0; i < students.length; i += 1) {
student = students[i];
if (look === student.name) {
message += getStudentReport( student );
print(message);
} else{
alert(look + ' was not found');
}
}
print(message);
}
while (true){
search = prompt('Search student records: type a name [Jody] (or type "quit" to end)');
if (search === null || search === 'quit'){
break;
}
findStudent(search);
}
感谢任何帮助。谢谢。
最佳答案
我认为这对您有帮助https://codepen.io/kalaiselvan/pen/YQGbar
var message = '';
var student;
var search;
function print(message) {
var outputDiv = document.getElementById('output');
outputDiv.innerHTML = message;
}
function getStudentReport( student ) {
var report = '<h2>Student: ' + student.name + '</h2>';
report += '<p>Track: ' + student.track + '</p>';
report += '<p>Points: ' + student.points + '</p>';
report += '<p>Achievements: ' + student.achievements + '</p>';
return report;
}
function findStudent( look ){
var flag=0;
for (var i = 0; i < students.length; i += 1) {
student = students[i];
if (look === student.name) {
message += getStudentReport( student );
print(message);
flag=0;
break;
} else{
flag=1;
}
}
if(flag==1){
alert(look + ' was not found');
showprompt();
}
}
function showprompt(){
search = prompt('Search student records: type a name [Jody] (or type "quit" to end)');
if (search != null && search !== "quit"){
findStudent(search);
}
}
showprompt();
关于javascript - 如果在 javascript 数组中找不到输入的值,如何获取警报消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44558490/