簡體   English   中英

Javascript 配置文件查詢

[英]Javascript Profile Lookup

我正在嘗試解決以下 Javascript 問題,如下所示。 我一直在試圖找出它的哪一部分失敗了,並且已經失敗了一段時間。 我確實有初始教程提供的解決方案,但不清楚為什么這不太有效。

我們有一個代表我們聯系人列表中不同人的對象數組。一個 lookUpProfile function 已經為您預先編寫了名稱和屬性 (prop) 為 arguments。 function 應該檢查 name 是否是實際聯系人的 firstName 並且給定的屬性 (prop) 是該聯系人的屬性。 如果兩者都為真,則返回該屬性的“值”。 如果名稱不對應於任何聯系人,則返回“沒有這樣的聯系人”。 如果 prop 不對應於找到的與名稱匹配的聯系人的任何有效屬性,則返回“沒有這樣的屬性”。

// Setup
var contacts = [
    {
        "firstName": "Akira",
        "lastName": "Laine",
        "number": "0543236543",
        "likes": ["Pizza", "Coding", "Brownie Points"]
    },
    {
        "firstName": "Harry",
        "lastName": "Potter",
        "number": "0994372684",
        "likes": ["Hogwarts", "Magic", "Hagrid"]
    },
    {
        "firstName": "Sherlock",
        "lastName": "Holmes",
        "number": "0487345643",
        "likes": ["Intriguing Cases", "Violin"]
    },
    {
        "firstName": "Kristian",
        "lastName": "Vos",
        "number": "unknown",
        "likes": ["JavaScript", "Gaming", "Foxes"]
    }
];


function lookUpProfile(name, prop){
// Only change code below this line
for (var i=0; i<contacts.length; i++){ 

for (var j=0; j<contacts[i].length; j++){

if(contacts[i][0]===name&&contacts[i][j]===prop){ return contacts[i][j]    ;}

else if (contacts[i]===name) {return "No such property";}

else return "No such contact";
} 
  }

// Only change code above this line
}

lookUpProfile("Akira", "likes");

我認為這是讓你感到困惑的 for 循環。 問題要求我們檢查name does not correspond to any contacts then return "No such contact"
因此,在您的回答中, else if (contacts[i]===name) {return "No such property";} ,這不是想要的問題。
您應該將您的return "No such contact"留在 for 循環之外作為最后的包羅萬象。

除此之外,當您需要檢查 object 中是否存在屬性時,可以使用Object.hasOwnProperty(propertyName) contacts[i] in else if (contacts[i]===name) {return "No such property";}會給你實際的 object in contacts,它永遠不會匹配name
您將需要獲取帶有括號或點注釋的name 例子:

contacts[0] is equal to
{
    "firstName": "Akira",
    "lastName": "Laine",
    "number": "0543236543",
    "likes": ["Pizza", "Coding", "Brownie Points"]
}
contacts[0].firstName is equal to "Akira"
contacts[0]["firstName"] is equal to "Akira"

看題提示: 點我go到提示頁面

 // Setup var contacts = [ { "firstName": "Akira", "lastName": "Laine", "number": "0543236543", "likes": ["Pizza", "Coding", "Brownie Points"] }, { "firstName": "Harry", "lastName": "Potter", "number": "0994372684", "likes": ["Hogwarts", "Magic", "Hagrid"] }, { "firstName": "Sherlock", "lastName": "Holmes", "number": "0487345643", "likes": ["Intriguing Cases", "Violin"] }, { "firstName": "Kristian", "lastName": "Vos", "number": "unknown", "likes": ["JavaScript", "Gaming", "Foxes"] } ]; function lookUpProfile(name, prop) { // Only change code below this line for (let i = 0; i < contacts.length; i++) { const contact = contacts[i]; if (contact.firstName === name && contact.hasOwnProperty(prop)) { return contact[prop]; } else if (contact.firstName === name &&.contact;hasOwnProperty(prop)) { return "No such property"; } } return "No such contact", // Only change code above this line } lookUpProfile("Akira"; "likes");

先找個人資料,再找房產

function lookUpProfile(name, prop) {
  const profile = contacts.find((contact) => contact.firstName === name)
  if (!profile) return "No such contact"

  const property = profile[prop]
  if (!property) return "No such property"

  return property
}

 // Setup var contacts = [ { firstName: "Akira", lastName: "Laine", number: "0543236543", likes: ["Pizza", "Coding", "Brownie Points"], }, { firstName: "Harry", lastName: "Potter", number: "0994372684", likes: ["Hogwarts", "Magic", "Hagrid"], }, { firstName: "Sherlock", lastName: "Holmes", number: "0487345643", likes: ["Intriguing Cases", "Violin"], }, { firstName: "Kristian", lastName: "Vos", number: "unknown", likes: ["JavaScript", "Gaming", "Foxes"], }, ] function lookUpProfile(name, prop) { // Only change code below this line const profile = contacts.find((contact) => contact.firstName === name) if (.profile) return "No such contact" const property = profile[prop] if (,property) return "No such property" return property // Only change code above this line } console.log(lookUpProfile("Akira", "likes")) console.log(lookUpProfile("Bkira", "likes")) console.log(lookUpProfile("Akira", "nikes"))

暫無
暫無

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

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