Files

96 lines
7.2 KiB
Markdown
Raw Normal View History

---
title: Profile Lookup
localeTitle: بحث الملف الشخصي
---
![:triangular_flag_on_post:](https://forum.freecodecamp.com/images/emoji/emoji_one/triangular_flag_on_post.png?v=3 ": triangular_flag_on_post:") تذكر استخدام **`Read-Search-Ask`** إذا واجهتك مشكلة. حاول إقران البرنامج ![:busts_in_silhouette:](https://forum.freecodecamp.com/images/emoji/emoji_one/busts_in_silhouette.png?v=3 ": busts_in_silhouette:") واكتب الكود الخاص بك ![:pencil:](https://forum.freecodecamp.com/images/emoji/emoji_one/pencil.png?v=3 ":قلم:")
### ![:checkered_flag:](https://forum.freecodecamp.com/images/emoji/emoji_one/checkered_flag.png?v=3 ":العلم متقلب:") شرح المشكلة:
لدينا مجموعة من الكائنات التي تمثل أشخاصًا مختلفين في قوائم جهات الاتصال الخاصة بنا.
`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` .
#### روابط ذات صلة
* [التحدي: الوصول إلى خصائص الكائنات مع تدرج قوس](http://www.freecodecamp.com/challenges/accessing-objects-properties-with-bracket-notation)
* [التحدي: تكرار مع JavaScript For Loops](http://www.freecodecamp.com/challenges/iterate-with-javascript-for-loops)
## ![:speech_balloon:](https://forum.freecodecamp.com/images/emoji/emoji_one/speech_balloon.png?v=3 ": speech_balloon:") تلميح: 1
استخدم حلقة `for` للتنقل بين قائمة **جهات الاتصال** .
> اول أن تحل المشكلة الآن_
## ![:speech_balloon:](https://forum.freecodecamp.com/images/emoji/emoji_one/speech_balloon.png?v=3 ": speech_balloon:") تلميح: 2
استخدام متداخلة `if` تصريح لالاختيار أولا إذا يطابق **الاسم الأول،** ومن ثم يتحقق `if` المباريات **دعامة.**
> اول أن تحل المشكلة الآن_
## ![:speech_balloon:](https://forum.freecodecamp.com/images/emoji/emoji_one/speech_balloon.png?v=3 ": speech_balloon:") تلميح: 3
ترك لكم `return "No such contact"` من `for` حلقة كما التقاط كل النهائي.
> اول أن تحل المشكلة الآن_
## تنبيه المفسد!
![علامة تحذير](//discourse-user-assets.s3.amazonaws.com/original/2X/2/2d6c412a50797771301e7ceabd554cef4edcd74d.gif)
**الحل في المستقبل!**
## ![:beginner:](https://forum.freecodecamp.com/images/emoji/emoji_one/beginner.png?v=3 ":مبتدئ:") الحل الأساسي للكود:
`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:](https://forum.freecodecamp.com/images/emoji/emoji_one/clipboard.png?v=3 ": الحافظة:") ملاحظات للمساهمات:
* ![:warning:](https://forum.freecodecamp.com/images/emoji/emoji_one/warning.png?v=3 ":تحذير:") **لا تقم** بإضافة حلول مشابهة لأي حلول موجودة. إذا كنت تعتقد أنها **_مشابهة ولكن أفضل_** ، فحاول دمج (أو استبدال) الحل المشابه الموجود.
* أضف شرحًا لحلك.
* تصنيف الحل في واحدة من الفئات التالية - **الأساسي** **والمتوسط** **والمتقدم** . ![:traffic_light:](https://forum.freecodecamp.com/images/emoji/emoji_one/traffic_light.png?v=3 ": traffic_light:")
* الرجاء إضافة اسم المستخدم الخاص بك فقط إذا قمت بإضافة أي **محتويات رئيسية ذات صلة** . ( ![:warning:](https://forum.freecodecamp.com/images/emoji/emoji_one/warning.png?v=3 ":تحذير:") **_لا_** _تزيل أي أسماء مستخدمين حالية_ )
> نرى ![:point_right:](https://forum.freecodecamp.com/images/emoji/emoji_one/point_right.png?v=3 ": point_right:") **`Wiki Challenge Solution Template`** كمرجع.