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 data-Parameter:

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

Die Funktion sollte:

  1. Überprüfen, ob ein Film mit der angegebenen movieId und ein Veranstaltungsort mit der angegebenen venueId in festivalData existieren. Wenn einer von beiden nicht gefunden wird, füge "Movie or venue not found!" zu results hinzu
  2. Überprüfen, ob keine Vorführung am selben Veranstaltungsort, Datum und Uhrzeit stattfindet - Wenn die Vorführung bereits existiert, füge "Screening already exists at this time!" zu results hinzu
  3. Erstelle ein neues Vorführungsobjekt mit:
    • id: generiere durch Addieren von 1 zur Länge (length) des screenings-Arrays
    • movieId, venueId, date und time aus den Daten
    • availableSeats: gleich der Kapazität (capacity) des Veranstaltungsorts
  4. Füge die Vorführung dem Array festivalData.screenings hinzu
  5. Füge "Screening added successfully!" zum Array results 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