[英]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.