簡體   English   中英

此JavaScript代碼有什么問題?

[英]whats wrong in this javascript code?

編輯:來自代碼學院的說明:

定義一個使用單個參數name的函數搜索。 如果傳遞給該函數的參數與好友中的任何名字匹配,則應將該好友的聯系信息記錄到控制台並返回。

我正在通過代碼學院學習JavaScript。 我正在編寫一本簡單的通訊錄,其中包含朋友的詳細信息,並且具有搜索功能以獲取聯系人的詳細信息/這是代碼:

var friends = {
    bill: {},
    steve: {}
}

friends.bill.firstName = "bill";
friends.bill.lastName = "gates";
friends.bill.number = 587678;
friends.bill.address = ['mes quarters', 'east camp'];

friends.steve.firstName = "steve";
friends.steve.lastName =  "Jobs";
friends.steve.number = 67896986;
friends.steve.address = ["nch colony", "kanjur marg"];

var list = function() {
    for(var friend in friends){
       // console.log(friend);
    }
} 

var search = function(name){
    for(var prop in friends)
    if(name === friends[prop].firstName){
        console.log(friends[prop]);
        return friends[prop];
    }
}

list();
search("bill");
search("steve");

在代碼學院系統中,該代碼不被接受為正確的代碼。 它顯示以下錯誤:

糟糕,再試一次! 您的搜索功能似乎未返回Steve的聯系信息。

(Codeacademy多次未顯示正確的錯誤)

我將其發布在Codeacademy論壇上並尋求幫助。 我得到一個答復:

要回答這個問題,因為您的數據結構混亂了。 返回本課程以使其正確:

就像這樣:

 var friends = {}; friends.bill = { firstName: "Bill", lastName: "Gates", number: "(206) 555-5555", address: ['One Microsoft Way','Redmond','WA','98052'] }; friends.steve = { firstName: "Steve", lastName: "Jobs", number: "(408) 555-5555", address: ['1 Infinite Loop','Cupertino','CA','95014'] }; 

誰能解釋我,我的代碼到底有什么問題? 正確的方法是什么? 這是我的問題的codeacademy論壇鏈接: http : //www.codecademy.com/forum_questions/52883d7c548c358401006826#answer-5288c908abf821c7450089fc

這是僅用於通過Codeacademy測試,還是用於制定適當的通訊錄? 如果是后一種情況,請使用一個類:

對於應用

"use strict";
var Contact = function(fName, lName, number, address) {
  this.firstName = fName;
  this.lastName = lName;
  this.number = number;
  this.address = address;
};
var contacts = [];

然后,要添加聯系人,請使用:

function addContact(fn, ln, nm, ad) {
  contacts.push(new Contact(fn, ln, nm, ad));
}

addContact("Bill", "Gates", "(206) 555-5555", ['One Microsoft Way','Redmond','WA','98052']);

並搜索:

function searchContact(query) {
  for(var x in contacts) {
    if(contacts[x].firstName == query) {
      return contacts[x];
    }
    else
      return false;
  }
}

為了測試

但是,如果您只想通過此測試,我想您應該模仿練習中的代碼。 驗證程序腳本可能會檢查您的名稱是否== "Bill""Steve" -表示您使用的字符串"bill""steve"由於區分大小寫而無法通過測試。

該測試應該可以幫助您學習編程,因此,請嘗試研究代碼,直到發現與已完成的工作和有效的工作有顯着差異為止! 祝你好運。

var friends= {};
friends.bill={
    firstName:"Bill",
    lastName:"Gates",
    number:"9966334418",
    address: ['One Microsoft Way','Redmond','WA','98052']
    };

friends.steve={
    firstName:"Steve",
    lastName:"Jobs",
    number:"9966224418",
    address:['banglore',]
    };
   var list = function(obj) {
  for(var prop in obj) {
    console.log(prop);
  }
};

var search = function(name) {
  for(var prop in friends) {
    if(friends[prop].firstName === name) {
      console.log(friends[prop]);
      return friends[prop];

    }
  }
};

list(friends);
search("Steve");

同樣的事情發生在我身上,盡管我懷疑這是CodeAcademy的一個錯誤,原因是在能夠顯示Steve的聯系信息之后,我遇到了以下錯誤:“糟糕,再試一次。看起來您的搜索功能沒有返回Bill的聯系信息”。

暫無
暫無

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

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