الانتقال إلى المحتوى الرئيسي
الوحدة 6 · الدرس 1 من 421/32 في الدورة~10 min
دروس الوحدة (1/4)

الخريطة والتصفية

طريقتان أساسيتان: تحويل المصفوفة إلى مصفوفة جديدة، دون تغيير المصفوفة الأصلية.

map: تحويل كل عنصر

يأخذ دالة، ويطبقها على كل عنصر، ويعيد مصفوفة بنفس الطول مع النتائج.

JS
const numeri = [1, 2, 3, 4];

const doppi = numeri.map((n) => n * 2);
// [2, 4, 6, 8]

const stringhe = numeri.map((n) => `n=${n}`);
// ['n=1', 'n=2', 'n=3', 'n=4']

يبقى الأصل دون تغيير:

JS
numeri; // [1, 2, 3, 4]  ← unchanged

filter: حدد مجموعة فرعية

يستغرق الأمر مسندًا (دالة تُرجع صواب/خطأ). فهو يحتفظ فقط بالعناصر التي من أجلها المسند صحيح.

JS
const numeri = [1, 2, 3, 4, 5, 6];

const pari = numeri.filter((n) => n % 2 === 0);
// [2, 4, 6]

const grandi = numeri.filter((n) => n > 3);
// [4, 5, 6]

الجمع بين الاثنين

خط الأنابيب الكلاسيكي: التصفية، ثم التحويل.

JS
const prezzi = [12, 5, 100, 30, 7];

const grandiDoppi = prezzi.filter((p) => p > 10).map((p) => p * 2);
// [24, 200, 60]

جربه

تمرين#js.m6.l1.e1
المحاولات: 0جارٍ التحميل…

تعريف `vat(prices,rate)`: بالنظر إلى مجموعة من الأرقام ومعدل (على سبيل المثال 0.22)، قم بإرجاع مصفوفة مع زيادة الأسعار بواسطة ضريبة القيمة المضافة. استخدم الخريطة.

جارٍ تحميل المحرر…
إظهار التلميح

خريطة الأسعار((ع) => ع * (1 + السعر))

الحل متاح بعد 3 من المحاولات

تمرين المراجعة

تمرين#js.m6.l1.e2
المحاولات: 0جارٍ التحميل…

تحديد `adultNames(people)`: تتلقى مجموعة من الكائنات { name, age } وتقوم بإرجاع مجموعة أسماء الأشخاص الذين تتراوح أعمارهم بين >= 18. استخدم مرشح + خريطة.

جارٍ تحميل المحرر…
إظهار التلميح

السلسلة: .filter(...).map((p) => p.name)

الحل متاح بعد 3 من المحاولات