Menu
Coddy logo textTech

Vorführung hinzufügen

Teil des Abschnitts Logik & Ablauf der JavaScript-Journey von Coddy — Lektion 62 von 65.

challenge icon

Aufgabe

Einfach

Füge deiner switch-Anweisung einen neuen Testfall hinzu: addScreening.

Für addScreening enthalten die Datenparameter:

  • movieId (Zahl)
  • venueId (Zahl)
  • date (String im Format 'YYYY-MM-DD')
  • time (String im Format 'HH:MM:SS')

Die Funktion sollte:

  1. Validieren, ob Film und Veranstaltungsort existieren - Wenn Film oder Veranstaltungsort nicht gefunden werden, füge "Movie or venue not found!" zu den Ergebnissen hinzu
  2. Überprüfen, ob am selben Veranstaltungsort zum selben Datum und zur selben Zeit keine Vorführung stattfindet - Wenn eine Vorführung existiert, füge "Screening already exists at this time!" zu den Ergebnissen hinzu
  3. Ein neues Vorführungsobjekt erstellen mit:
    • id: generiert durch Addieren von 1 zur Länge des screening-Arrays
    • movieId, venueId, date und time aus den Daten
    • availableSeats: entspricht der Kapazität des Veranstaltungsorts
  4. Die Vorführung zum festivalData.screenings Array hinzufügen
  5. Füge Screening added successfully! zum results-Array hinzu

Probier es selbst

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;

            case "addMovie":
                const newMovie = {
                    id: festivalData.movies.length + 1,
                    title: currentData.title,
                    director: currentData.director,
                    year: currentData.year,
                    mainGenre: currentData.mainGenre,
                    secondGenre: currentData.secondGenre,
                    avgRating: 0,
                    available: true
                };
                festivalData.movies.push(newMovie);
                results.push("Movie added successfully!");
                break;

            case "addVenue":
                const newVenue = {
                    id: festivalData.venues.length + 1,
                    name: currentData.name,
                    capacity: currentData.capacity,
                };
                festivalData.venues.push(newVenue);
                results.push("Venue added successfully!");
                break;


            default:
                results.push("Invalid action!");
        }
    });
    
    return results;
}

Alle Lektionen in Logik & Ablauf