--- title: Finders Keepers localeTitle: من يجد شيئا يحتفظ به --- ## شرح المشكلة نحتاج إلى إرجاع العنصر من صفيف يمر بوظيفة. كل من `function` و `array` تم تمريرها إلى وظيفة لدينا `findElement(arr, func)` . ## تلميح: 1 يمكن إجراء البحث في المصفوفة باستخدام حلقة `for` . > _حاول أن تحل المشكلة الآن_ ## تلميح: 2 `num` يتم تمريرها إلى الدالة. سنحتاج إلى تعيينه على العناصر التي نريد التحقق منها. > _حاول أن تحل المشكلة الآن_ ## تلميح: 3 لا تنسَ ، إذا لم ينجح أي من الأرقام في الصفيف في الاختبار ، فيجب أن `undefined` . > _حاول أن تحل المشكلة الآن_ ## الحل الأساسي `function findElement(arr, func) { let num = 0; for(var i = 0; i < arr.length; i++) { num = arr[i]; if (func(num)) { return num; } } return undefined; } ` ## شرح الشفرة * يطالبنا التحدي بالبحث من خلال الصفيف. يتم ذلك باستخدام حلقة `for` . * يتم تمرير متغير `num` إلى الدالة ، لذا قمنا بتعيينه على كل فهرس في الصفيف الخاص بنا. * تتحقق الدالة المحددة مسبقًا بالفعل من كل رقم بالنسبة إلينا ، لذا إذا كانت "true" ، فإننا نرجع ذلك العدد. * إذا لم ينجح أي من الأرقام الموجودة في الصفيف في اختبار الوظيفة ، فإننا نرجع إلى الحالة غير معرفة.