簡體   English   中英

為什么我的循環無法運行

[英]Why my loop doesn't run

我在freecodecamp 配置文件查找中陷入了這一挑戰,這是我的代碼,我不明白為什么我的循環未運行,它僅檢查第一個元素contact [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";
}

否則,無論如何,您將在第一個循環之后返回。 這樣,該方法將循環遍歷每條記錄,並且僅在不匹配時返回錯誤消息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM