Files
freeCodeCamp/curriculum/challenges/arabic/02-javascript-algorithms-and-data-structures/basic-javascript/profile-lookup.md
2022-10-20 09:13:17 -07:00

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";
}