为什么我的循环不运行

Why my loop doesn't run

本文关键字:运行 循环 我的 为什么      更新时间:2023-09-26

我在 freecodecamp 配置文件查找中遇到了这个挑战,这是我的代码,我不明白为什么我的循环没有运行,它只检查第一个元素联系人[0],为什么我没有增加?

function lookUpProfile(firstName, prop){
 for(var i=0;i<contacts.length;i++){
    if(contacts[i].firstName===firstName && contacts[i].hasOwnProperty(prop)){
      return contacts[i][prop];
    }
  else if(contacts[i].firstName !== firstName){
      return "No such contact";
    }
    else if (contacts[i].prop!==prop){
      return "No such property";
    }

  }

}

您需要删除 else if 条件,因为如果数组中的第一个联系人与名字不匹配,它将始终返回。

function lookUpProfile(firstName, prop) {
  for (var i = 0; i < contacts.length; i++) {
    if (contacts[i].firstName === firstName) {
      if (contacts[i].hasOwnProperty(prop))
        return contacts[i][prop];
      else
        return "Contact found but the property " + prop + " does not exist.";
    }
  }
  return "No contact found.";
}

它应该更像这样:

function lookUpProfile(firstName, prop){
    for(var i=0;i<contacts.length;i++){
      if(contacts[i].firstName===firstName && contacts[i].hasOwnProperty(prop)){
        return contacts[i][prop];
      }
    }
    return "No such contact and property";
}

否则,无论如何,您都会在第一个循环之后返回。这样,该方法将遍历每条记录,并且仅在不匹配时才返回错误消息。