48 lines
1.7 KiB
Markdown
48 lines
1.7 KiB
Markdown
|
---
|
|||
|
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" ، فإننا نرجع ذلك العدد.
|
|||
|
* إذا لم ينجح أي من الأرقام الموجودة في الصفيف في اختبار الوظيفة ، فإننا نرجع إلى الحالة غير معرفة.
|