javascript - 如果在 javascript 数组中找不到输入的值,如何获取警报消息

标签 javascript arrays

我有一个对象数组,我可以使用 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/

相关文章:

javascript - 我在以下 chai Expect 中收到断言错误

javascript - RequireJS Mismatched anonymous define 由 Drupal 引起的错误?

javascript - 如何在运行时更改 react native 中的导航器左按钮?

javascript - 删除项目时多次遍历数组的最快方法

java - 我的循环中将字符解析为 ascii 与比较我已经设置的分配值之间是否存在问题?

javascript - 为什么这个 array.reduce 函数根本没有减少?初学者

javascript - 在 HTML 页面之间共享数据

java - 将文本文件中的输入保存到数组

c - 将 char 赋值给 int

javascript - DNA 配对,将数组插入数组