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

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

جزء من قسم Logic & Flow في رحلة 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;
}

جميع دروس Logic & Flow