【问题标题】:I want to find if there is a certain name in the students array and if there is to print out true, and false if there isn't我想查找学生数组中是否有某个名称,是否有打印出 true,如果没有则打印出 false
【发布时间】:2016-12-08 23:24:14
【问题描述】:
function createStudent(fn, ln) {  //function
  var person = {       
    firstName: fn,
    lastName: ln
  };
  return person;
}

    var tim = createStudent("Tim", "Plano");
    var matt = createStudent("Matt", "Asant");
    var elie = createStudent("Elie", "Garcia");

    var students = [tim, matt, elie];
//Function      
    findStudentByFirstName(name); {
      for (var i = 0; i < students.length; i++) {
        if (name[i]=== students.firstName) {
          return true;
        } else {
          return false;
        }


      }
    }



I do not know what I'm doing wrong, can anyone please help me. Thank you in Advance.

【问题讨论】:

  • students 是一个数组,所以 students.firstName 没有任何意义。应该是students[i].firstName。
  • 请修正格式。看起来您在第一次检查时立即返回,这很可能不是您想要的。

标签: javascript arrays function object


【解决方案1】:

您似乎遇到了一些问题。声明findStudentByFirstName 函数应该使用与编写createStudent 时相同的function 关键字。其次,您希望将 return false 移出 for 循环,以便在声称找不到他/她之前测试每个学生的姓名。最后,通过您的循环,您可能想要访问students[i](一个数组元素)而不是name[i](这将是您的目标名称字符串的(i+1)th 字符)。

function findStudentByFirstName(name) {
    for (var i = 0; i < students.length; i++) {
        if (name === students[i].firstName) {
          return true
        }
    }
    return false
}

function createStudent(fn, ln) {
    var person = {       
        firstName: fn,
        lastName: ln
    };
    return person;
}

var tim = createStudent("Tim", "Plano");
var matt = createStudent("Matt", "Asant");
var elie = createStudent("Elie", "Garcia");

var students = [tim, matt, elie];

console.log(findStudentByFirstName('Tim')) //=> true
console.log(findStudentByFirstName('Joe')) //=> false

【讨论】:

    猜你喜欢
    • 2021-10-12
    • 2022-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-25
    • 2021-10-01
    • 1970-01-01
    相关资源
    最近更新 更多