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 (number)
  • venueId (number)
  • 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 vorhanden sind. Wenn einer von beiden nicht gefunden wird, füge "Movie or venue not found!" zu den Ergebnissen hinzu
  2. Überprüfen, ob es am selben Veranstaltungsort, Datum und zur selben Uhrzeit keine Vorführung gibt – 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: durch Addition von 1 zur Länge des Vorführungsarrays generiert
    • movieId, venueId, date und time aus den Daten
    • availableSeats: entspricht der Kapazität des Veranstaltungsorts
  4. Die Vorführung zum Array festivalData.screenings hinzufügen
  5. Screening added successfully! zum Ergebnisarray hinzufügen

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

Übe selbstständig: Online-JavaScript-Compiler