freeCodeCamp/guide/arabic/certifications/javascript-algorithms-and-d.../basic-javascript/profile-lookup/index.md

7.2 KiB

title localeTitle
Profile Lookup بحث الملف الشخصي

:triangular_flag_on_post: تذكر استخدام Read-Search-Ask إذا واجهتك مشكلة. حاول إقران البرنامج :busts_in_silhouette: واكتب الكود الخاص بك :pencil:

:checkered_flag: شرح المشكلة:

لدينا مجموعة من الكائنات التي تمثل أشخاصًا مختلفين في قوائم جهات الاتصال الخاصة بنا.

lookUpProfile() التي تأخذ الاسم الأول و خاصية ( prop ) كوسائط قد تمت كتابتها مسبقًا نيابة عنك.

يجب التحقق من الوظيفة إذا كان الاسم الأول هو الاسم الأول جهة اتصال الفعلي وممتلكات معينة (دعم) هو خاصية من هذا الاسم.

إذا كان كلاهما صحيحًا ، فأعد قيمة هذه الخاصية.

إذا كان الاسم الأول لا يتوافق مع أي جهات اتصال ، فعندئذ No such contact ترجع No such contact .

إذا كان البروب لا يتوافق مع أي خصائص صالحة ، فعندئذ No such property ترجع No such property .

  • تغيير الرمز أدناه // Only change code below this line وحتى // Only change code above this line .
  • تأكد من أنك تقوم بتحرير داخل وظيفة lookUpProfile() .
    • تتضمن هذه الوظيفة معلمتين ، firstName و prop .
  • يجب أن تبحث الدالة من خلال قائمة جهات الاتصال لمعلمة firstName المحددة.
    • في حالة وجود تطابق موجود ، يجب أن تبحث الدالة عن معلمة prop المقدمة.
    • إذا تم العثور على كل من firstName و prop المقترن ، يجب عليك إرجاع قيمة prop .
    • إذا تم العثور على firstName ولم يتم العثور على دعم مقترن ، يجب عليك إرجاع No such property .
  • إذا لم يتم العثور على الاسم الأول في أي مكان، يجب أن تعيد No such contact .

روابط ذات صلة

:speech_balloon: تلميح: 1

استخدم حلقة for للتنقل بين قائمة جهات الاتصال .

حاول أن تحل المشكلة الآن

:speech_balloon: تلميح: 2

استخدام متداخلة if تصريح لالاختيار أولا إذا يطابق الاسم الأول، ومن ثم يتحقق if المباريات دعامة.

حاول أن تحل المشكلة الآن

:speech_balloon: تلميح: 3

ترك لكم return "No such contact" من for حلقة كما التقاط كل النهائي.

حاول أن تحل المشكلة الآن

تنبيه المفسد!

علامة تحذير

الحل في المستقبل!

:beginner: الحل الأساسي للكود:

for (var x = 0; x < contacts.length; x++){ if (contacts[x].firstName === name) { if (contacts[x].hasOwnProperty(prop)) { return contacts[x][prop]; } else { return "No such property"; } } } return "No such contact";

شرح الشفرة:

  • و for حلقة يدير، ابتداء من الساعة الكائن الأول في قائمة الأسماء.
  • إذا تطابق المعلمة firstName تمريرها في الدالة قيمة المفتاح "firstName" في الكائن الأول ، تمرير عبارة if .
  • ثم ، نستخدم .hasOwnProperty() طريقة (يتحقق إذا كان هناك خاصية معينة وترجع قيمة منطقية) بالدعم كوسيطة. إذا كان صحيحًا ، يتم إرجاع قيمة الداعم .
    • في if فشل العبارة الثانية في if عدم إرجاع No such property .
  • في if فشل العبارة الأولى في if استمرار حلقة for إلى الكائن التالي في قائمة جهات الاتصال .
  • إذا لم تطابق المعلمة الاسم الأول من قبل الاتصالات النهائية الاعتراض، و for مخارج حلقة و No such contact يتم إرجاعها.

مثال تشغيل

  • lookUpProfile("Akira","likes"); أشواط.
  • تتم مطابقة "Akira" مع المفتاح "firstName" في الكائن الأول ، لذا فإن العبارة if ترجع true.
  • تم العثور على "likes" داخل الكائن الأول ، لذا فإن العبارة الثانية if صحيحة.
  • يتم إرجاع قيمة "likes" - "Pizza", "Coding", "Brownie Points" .

:clipboard: ملاحظات للمساهمات:

  • :warning: لا تقم بإضافة حلول مشابهة لأي حلول موجودة. إذا كنت تعتقد أنها مشابهة ولكن أفضل ، فحاول دمج (أو استبدال) الحل المشابه الموجود.
  • أضف شرحًا لحلك.
  • تصنيف الحل في واحدة من الفئات التالية - الأساسي والمتوسط والمتقدم . :traffic_light:
  • الرجاء إضافة اسم المستخدم الخاص بك فقط إذا قمت بإضافة أي محتويات رئيسية ذات صلة . ( :warning: لا تزيل أي أسماء مستخدمين حالية )

نرى :point_right: Wiki Challenge Solution Template كمرجع.