Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

نظرة عامة على المشروع

جزء من قسم Logic & Flow في رحلة JavaScript على Coddy — الدرس 42 من 65.

challenge icon

التحدي

سهل

ستعمل على إنشاء نظام لإدارة المكتبة. ابدأ بتهيئة النظام بالبيانات المقدمة وإنشاء هيكل الوظيفة الرئيسية.

قم بإنشاء متغير يسمى libraryData بهذه البيانات الأولية المحددة:

{
    books: [
        {
            id: 1,
            title: "The Great Gatsby",
            author: "F. Scott Fitzgerald",
            year: 1925,
            genre: "Fiction",
            isRead: false,
            rating: 0,
            borrowed: false,
            borrowedBy: "",
            borrowDate: ""
        }
    ],
    readers: [
        {
            name: "John Smith",
            favoriteGenre: "Fiction",
        }
    ]
}

الآن اتبع الخطوات التالية:

قم بإنشاء وظيفة تسمى manageLibrary تأخذ معاملين:

  • actions (مصفوفة من السلاسل النصية)
  • data (مصفوفة من الكائنات)

يجب أن تقوم الوظيفة بمعالجة كل إجراء في مصفوفة actions بالتسلسل، باستخدام كائن البيانات المقابل من مصفوفة data عند نفس الفهرس. على سبيل المثال، الإجراء عند actions[i] يستخدم البيانات عند data[i].

قم بإنشاء حلقة تكرارية تمر عبر كل إجراء في مصفوفة actions، ثم داخل الحلقة:

  1. قم بإنشاء مصفوفة نتائج فارغة ستحتوي على جميع النتائج
  2. قم بإنشاء جملة switch ستتعامل مع الحالات المختلفة
  3. أضف حالة printBooks داخل جملة switch ستقوم بإضافة الكتب الحالية داخل libraryData إلى مصفوفة results
  4. أضف حالة printReaders داخل جملة switch ستقوم بإضافة القراء الحاليين داخل libraryData إلى مصفوفة results
  5. أضف حالة افتراضية (default case) تضيف "Invalid action!" إلى مصفوفة results

جرّب بنفسك

// بيانات المكتبة الأولية
let libraryData = {}


function manageLibrary(actions, data) {
    let results = [];

    for (let i = 0; i < actions.length; i++) {
        const currentAction = actions[i];
        const currentData = data[i];
        
        switch (currentAction) {
            case 'printBooks':
                // اكتب كودك هنا
            case 'printReaders':
                // اكتب كودك هنا
            default:
                results.push("Invalid action!");
        }
    }
    return results;
}

جميع دروس Logic & Flow