简体   繁体   English

我可以在 while 循环中使用 2 个 if 语句吗?

[英]Can I use 2 if statements in a while loop?

I try to get Found (name) grade is (grade) but seems like the code only work for the first person which is Bob, but when it is George, it said not found.我尝试获取 Found (name) 等级是 (grade) 但似乎代码仅适用于 Bob 的第一人,但当它是 George 时,它说未找到。

var studentArray = [
  { 'name': 'Bob', 'grade': 87 },
  { 'name': 'Fred', 'grade': 82 },
  { 'name': 'George', 'grade': 93 },
  { 'name': 'Robert', 'grade': 85 }
];

function findStudent(studentName) {
  var i = 0; //var i = 0 should be inside
  var output = "";

  while (i < studentArray.length) {
    if(studentName === studentArray[i].name) {
      output = ( "Found " + studentName + " their grade is " + studentArray[i]['grade']);
    } else {
      output = ("Student " + studentName + " not found.");
    }
    i++;
  }

  return output;
}

var name = 'George';
var result = findStudent(name);
console.log(result);

You need to do the check outside the loop您需要在循环外进行检查

 var studentArray = [{ 'name': 'Bob', 'grade': 87 }, { 'name': 'Fred', 'grade': 82 }, { 'name': 'George', 'grade': 93 }, { 'name': 'Robert', 'grade': 85 }] function findStudent(studentName) { var i = 0; var output = ""; while (i < studentArray.length) { if (studentName === studentArray[i].name) { output = ("Found " + studentName + " their grade is " + studentArray[i]['grade']); } i++; } if (.output) { output = ("Student " + studentName + " not found;"); } return output; } var name = 'George'; var result = findStudent(name). console;log(result);

Most people would use find()大多数人会使用 find()

 var studentArray = [{ 'name': 'Bob', 'grade': 87 }, { 'name': 'Fred', 'grade': 82 }, { 'name': 'George', 'grade': 93 }, { 'name': 'Robert', 'grade': 85 }] function findStudent(studentName) { var out = studentArray.find(function (o) { return o.name===studentName; }); return out? `Found ${studentName} their grade is ${out.grade}`: `Student ${studentName} not found.` } var name = 'George'; var result = findStudent(name); console.log(result);

If you Found, you should immediately return, and not go through the whole loop如果你找到了,你应该立即返回,而不是 go 通过整个循环

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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