دالتا Find و FindIndex
جزء من قسم Logic & Flow في رحلة JavaScript على Coddy — الدرس 58 من 65.
تُرجع الطريقة find() أول عنصر في مصفوفة يحقق دالة اختبار محددة. إذا لم يتم العثور على أي عنصر، فإنها تُرجع undefined.
تُعد طريقة findIndex() مشابهة ولكنها تعيد فهرس أول عنصر مطابق بدلاً من العنصر نفسه. إذا لم يتم العثور على أي عنصر، فإنها تعيد -1.
الصيغة الأساسية:
array.find(callback(element[, index[, array]]))
array.findIndex(callback(element[, index[, array]]))مثال بسيط مع find():
const numbers = [5, 12, 8, 130, 44];
const found = numbers.find(num => num > 10);
console.log(found);
// 12 (أول رقم أكبر من 10)نفس المثال مع findIndex():
const numbers = [5, 12, 8, 130, 44];
const foundIndex = numbers.findIndex(num => num > 10);
console.log(foundIndex);
// 1 (فهرس أول رقم أكبر من 10)البحث عن الكائنات في مصفوفة:
const inventory = [
{name: 'apples', quantity: 2},
{name: 'bananas', quantity: 0},
{name: 'oranges', quantity: 5}
];
// استخدام find
const result = inventory.find(item => item.name === 'bananas');
console.log(result); // {name: 'bananas', quantity: 0}
// استخدام findIndex
const index = inventory.findIndex(item => item.name === 'bananas');
console.log(index); // 1يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
ورقة مرجعية
تعيد الطريقة find() العنصر الأول الذي يحقق دالة اختبار معينة، أو undefined إذا لم يتم العثور على أي عنصر:
const numbers = [5, 12, 8, 130, 44];
const found = numbers.find(num => num > 10);
console.log(found); // 12تعيد الطريقة findIndex() فهرس أول عنصر مطابق، أو -1 إذا لم يتم العثور على أي عنصر:
const numbers = [5, 12, 8, 130, 44];
const foundIndex = numbers.findIndex(num => num > 10);
console.log(foundIndex); // 1البحث عن الكائنات (objects) في المصفوفات:
const inventory = [
{name: 'apples', quantity: 2},
{name: 'bananas', quantity: 0},
{name: 'oranges', quantity: 5}
];
const result = inventory.find(item => item.name === 'bananas');
// {name: 'bananas', quantity: 0}
const index = inventory.findIndex(item => item.name === 'bananas');
// 1جرّب بنفسك
لا يتضمّن هذا الدرس تحدّيًا برمجيًا.
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Logic & Flow
1السلاسل النصية بعمق
أساسيات السلاسل النصيةالتكرار عبر السلاسل النصيةTemplate Literalsدوال السلاسل النصيةمراجعة - String Weaver2المصفوفات متعددة الأبعاد
أساسيات المصفوفات ثنائية الأبعادالوصول إلى عناصر المصفوفات ثنائية الأبعادالحلقات المتداخلة مع المصفوفات ثنائية الأبعادمراجعة - المصفوفات ثنائية الأبعادجمع وطرح المصفوفاتالمصفوفات المتعرجة (Jagged Arrays)المصفوفات ثلاثية الأبعاد وما بعدهاأنماط المصفوفات ثنائية الأبعاد الشائعةمراجعة - كل شيء عن المصفوفات5المجموعات - الجزء الأول
ما هي المجموعة؟التكرار عبر المجموعاتإضافة عنصرإزالة عنصرالتحقق من وجود عنصرالحجم وهل هي فارغةالنسخ والمسحملخص - أساسيات المجموعات8مواضيع شيقة حول الـ Arrays
تفكيك الـ Arrayاستخدام الـ Spread Syntax في الـ Arraysالـ Sparse Arraysمراجعة - ورشة عمل الـ Arrays3JSON الجزء الأول
ما هو JSON؟التحقق من وجود المفتاحObject MethodsSpread Operator الجزء الأولSpread Operator الجزء الثانيحذف المفاتيحمراجعة - معالجة مفاتيح JSON6المجموعات - الجزء الثاني
الرياضيات - اتحاد المجموعاتالرياضيات - تقاطع المجموعاتالرياضيات - الفرق بين المجموعاتالرياضيات - الفرق المتناظرالمجموعات الجزئية والمجموعات الفائقةمراجعة - مجموعات الأصدقاء9دوال المصفوفات المتقدمة
دالتا Join و Splitدالة Mapدالة Filterدالة Reduceتسلسل دوال المصفوفاتهل ForEach و Map متماثلتان؟دالة Sortدالتا Find و FindIndexمراجعة - محترف التسلسل