3.4 KiB
id, title, challengeType, videoUrl, forumTopicId, dashedName
| id | title | challengeType | videoUrl | forumTopicId | dashedName |
|---|---|---|---|---|---|
| 5688e62ea601b2482ff8422b | البحث عن الملف الشخصي (Profile Lookup) | 1 | https://scrimba.com/c/cDqW2Cg | 18259 | profile-lookup |
--description--
لدينا قائمة من الكائنات التي تمثل أشخاص مختلفين في قوائم جهات الاتصال.
تأخذ وظيفة lookUpProfile كائن name والخاصية (prop) كحجج تم كتابتها مسبقاً لك.
يجب أن تتحقق الوظيفة مما إذا كان name هو firstName جهة الاتصال الفعلية والخاصية (prop) هي خاصية جهة الاتصال تلك.
إذا كان كلاهما true، أنتج "قيمة" تلك الخاصية.
إذا كان 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";
}