3.7 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) як аргументи були попередньо записані для вас.
Функція має перевірити, чи name є фактичним контактом firstName і даний параметр (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
const 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--
const 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) {
for (let i in contacts) {
if (contacts[i].firstName === name) {
return contacts[i][prop] || "No such property";
}
}
return "No such contact";
}