Filter & Sort Lists تصفية القوائم وترتيبها

آخر تحديث: 2026-11-03

Filter & Sort Lists تصفية القوائم وترتيبها

لا تُعدّل تصفية القائمة وترتيبها تعديل المصفوفة الأصلية وقت العرض، بل تشتقّ مصفوفة جديدة بـ filter وsort وما شابه ثم تعرض تلك. فالحفاظ على بيانات المصدر دون مساس، وحساب المشهد وقت العرض، هما الفكرة الأساسية في تعامل React مع القوائم. كما يتجنّب ذلك الخلل الكلاسيكي الذي يفسد فيه ترتيب مصفوفة الحالة بصمت.

المجموعةالعرض والحالة
النوعنمط
منذ الإصدارأقدم إصدارات React

ℹ️ ملاحظة يحوّل المحرّر JSX إلى JavaScript ويعرض الواجهة الحقيقية داخل بيئة معزولة؛ تُركَّب المكوّنات تلقائياً دون استدعاء render يدوي.

📝 الصيغة

const shown = products
  .filter((p) => p.price < 100)        // التصفية ← مصفوفة جديدة
  .sort((a, b) => a.price - b.price)   // الترتيب (على النسخة الناتجة عن التصفية)
{shown.map((p) => <li key={p.id}>{p.name}</li>)}

القيمة المرجعة:لا قيمة معادة — مجرد اصطلاح برمجي ونموذج ذهني.

▶ مثال

المثال يعمل مباشرة: يُعرض تلقائياً عند التوسيع وتظهر التعديلات فوراً.

الناتج:

قائمة منتجات مع أداتَي تحكم: بتحديد «Under 100 only» لا يبقى سوى الماوس، والضغط على زر السعر يبدّل بين الترتيب التنازلي والتصاعدي بينما تُعاد ترتيب القائمة لحظياً — والمصفوفة الأصلية لا تُعدَّل أبداً.

💡 النقاط الأساسية

💡 نصيحة صفِّ قبل أن ترتّب: filter يعيد مصفوفة جديدة، فترتيب تلك النسخة في المكان لا يمسّ مصفوفة الحالة.
⚠️ تحذير ‏sort يعدّل المصفوفة في المكان! انسخها بـ [...arr] — أو صفِّها أولاً — قبل ترتيب مصفوفة حالة مباشرة.
ℹ️ ملاحظة تُحفظ شروط التصفية واتجاه الترتيب عادةً في الحالة، بينما يُحسب النتيجة المعروض وقت العرض، فلا حاجة لتخزين «حالة مشتقّة» منفصلة.
المزيد من الحالات قريباً.

📚 دروس ذات صلة

❓ الأسئلة الشائعة

س كيف أصفّي وأرتّب قائمة في React؟
ج صفِّ البيانات ورتّبها قبل العرض للحصول على مصفوفة جديدة، ثم حوّلها بـ map إلى JSX. احتفظ بشروط التصفية في الحالة واحسب النتيجة وقت العرض.
س هل يعدّل sort المصفوفة الأصلية؟
ج نعم، sort يرتّب في المكان. يجب نسخ مصفوفة الحالة قبل ترتيبها ([...arr].sort، أو التصفية أولاً)، وإلا فسدت مصفوفة الحالة.
س هل ينبغي تخزين نتيجة التصفية في الحالة؟
ج لا. نتيجة التصفية مشتقّة من البيانات الأصلية مضافاً إليها الشروط، فاحسبها وقت العرض؛ وتخزين نسخة ثانية يترك بسهولة نسختين غير متزامنتين.
Web-Tutorial.com

فريق Web-Tutorial التقني

منصة دروس برمجية يديرها عدة مطورين. كل درس يتم كتابته ومراجعته بواسطة مطورين متخصصين في المجال. نعمل على ضمان دقة وموثوقية المحتوى — إذا لاحظت أي مشكلة، فيرجى إخبارنا.

100%