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

إضافة الأفلام والأماكن

جزء من قسم المنطق وتدفق التنفيذ في رحلة JavaScript على Coddy. الدرس 61 من 65.

challenge icon

التحدي

سهل

أضف حالتين جديدتين إلى جملة switch الخاصة بك: addMovie و addVenue.

بالنسبة لـ addMovie، تحتوي معلمة data على:

  • title (string)
  • director (string)
  • year (number)
  • mainGenre (string)
  • secondGenre (string)

يجب أن تقوم الوظيفة بـ:

  1. إنشاء كائن فيلم جديد يحتوي على:
    • id: يتم إنشاؤه بإضافة 1 إلى طول مصفوفة movies
    • title، و director، و year، و mainGenre، و secondGenre من data
    • avgRating: 0
    • available: true
  2. إضافة الفيلم إلى مصفوفة festivalData.movies
  3. إضافة Movie added successfully! إلى مصفوفة results

بالنسبة لـ addVenue، تحتوي معلمة data على:

  • name (string)
  • capacity (number)

يجب أن تقوم الوظيفة بـ:

  1. إنشاء كائن مكان (venue) جديد يحتوي على:
    • id: يتم إنشاؤه بإضافة 1 إلى طول مصفوفة venues
    • name و capacity من data
  2. إضافة المكان إلى مصفوفة festivalData.venues
  3. إضافة "Venue added successfully!" إلى مصفوفة results

جرّب بنفسك

const festivalData = {
	movies: [{
		id: 1,
		title: "Inception",
		director: "Christopher Nolan",
		year: 2010,
		mainGenre: "Sci-Fi",
		secondGenre: undefined,
		avgRating: 0,
		available: true
	}],
	venues: [{
		id: 1,
		name: "Main Theater",
		capacity: 200,
	}],
	screenings: [{
		id: 1,
		movieId: 1,
		venueId: 1,
		date: '2023-10-29',
		time: '13:35:00',
		availableSeats: 200
	}],
	tickets: new Set()
}

function manageFestival(actions, data) {
    let results = [];
    
    actions.forEach((action, index) => {
        const currentData = data[index];
        
        switch(action) {
            case "listMovies":
                results.push(festivalData.movies);
                break;
                
            case "listVenues":
                results.push(festivalData.venues);
                break;

            case "listTickets":
                results.push(festivalData.tickets);
                break;

            case "listScreenings":
                results.push(festivalData.screenings);
                break;
                
            default:
                results.push("Invalid action!");
        }
    });
    
    return results;
}

جميع دروس المنطق وتدفق التنفيذ

تدرّب بنفسك: مترجم JavaScript عبر الإنترنت