3.5 KiB
3.5 KiB
id, title, challengeType, videoUrl, forumTopicId, dashedName
| id | title | challengeType | videoUrl | forumTopicId | dashedName |
|---|---|---|---|---|---|
| 5688e62ea601b2482ff8422b | 資料查找 | 1 | https://scrimba.com/c/cDqW2Cg | 18259 | profile-lookup |
--description--
我們有一個對象數組,裏面存儲着通訊錄。
lookUpProfile 函數已經寫好了參數,需要 name 和屬性 (prop) 參數。
函數將會檢查通訊錄中是否存在一個 firstName 與傳入的 name 相同的聯繫人。 如果存在,那麼還需要檢查對應的聯繫人中是否存在 prop 屬性。
如果它們都存在,函數返回 prop 屬性對應的值。
如果 name 不對應於任何聯繫人,然後返回字符串 No such contact。
如果 prop 屬性在匹配 name 的聯繫人裏不存在,返回 No such property。
--hints--
lookUpProfile("Kristian", "lastName") 應該返回字符串 Vos
assert(lookUpProfile('Kristian', 'lastName') === 'Vos');
lookUpProfile("Sherlock", "likes") 應該返回 ["Intriguing Cases", "Violin"]
assert.deepEqual(lookUpProfile('Sherlock', 'likes'), [
'Intriguing Cases',
'Violin'
]);
lookUpProfile("Harry", "likes") 應該返回一個數組
assert(typeof lookUpProfile('Harry', 'likes') === 'object');
lookUpProfile("Bob", "number") 應該返回字符串 No such contact
assert(lookUpProfile('Bob', 'number') === 'No such contact');
lookUpProfile("Bob", "potato") 應該返回字符串 No such contact
assert(lookUpProfile('Bob', 'potato') === 'No such contact');
lookUpProfile("Akira", "address") 應該返回字符串 No such property
assert(lookUpProfile('Akira', 'address') === 'No such property');
--seed--
--seed-contents--
// 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
// Only change code above this line
}
lookUpProfile("Akira", "likes");
--solutions--
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"]
},
];
//Write your function in between these comments
function lookUpProfile(name, prop){
for(var i in contacts){
if(contacts[i].firstName === name) {
return contacts[i][prop] || "No such property";
}
}
return "No such contact";
}
//Write your function in between these comments
lookUpProfile("Akira", "likes");