Vorführung hinzufügen
Teil des Abschnitts Logik & Ablauf der JavaScript-Journey von Coddy. Lektion 62 von 65.
Aufgabe
EinfachFü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:
- Überprüfen, ob ein Film mit der angegebenen
movieIdund ein Veranstaltungsort mit der angegebenenvenueIdinfestivalDatavorhanden sind. Wenn einer von beiden nicht gefunden wird, füge "Movie or venue not found!" zu den Ergebnissen hinzu - Ü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
- 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
- Die Vorführung zum Array
festivalData.screeningshinzufügen 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
1Strings im Detail
Grundlagen von StringsStrings durchlaufenTemplate LiteralsString-MethodenRückblick – String-Weber4JSON Teil 2
JSON durchlaufenVerschachteltes JSONOptionale Verkettung in JSONFlache und tiefe KopieWiederholung – FahrradgeschäftWiederholung – Sonnensystem7Bibliotheksverwaltungssystem
ProjektübersichtBücher hinzufügen10Festivalsystem verwalten
ProjektübersichtFilme und Veranstaltungsorte hinzufügen2Mehrdimensionale Arrays
Grundlagen von 2D-ArraysZugriff auf Elemente von 2D-ArraysVerschachtelte Schleifen mit 2D-ArraysWiederholung – 2D-ArraysMatrixaddition und -subtraktionZackige Arrays3D-Arrays und darüber hinausHäufige Muster bei 2D-ArraysWiederholung – Alles über Arrays5Mengen – Teil 1
Was ist eine Menge?Mengen durchlaufenEin Element hinzufügenEin Element entfernenPrüfen, ob ein Element vorhanden istGröße und LeerstatusKopieren und LeerenRückblick – Grundlagen von Mengen8Interessante Themen zu Arrays
Destrukturierung von ArraysSpread-Syntax in ArraysDünn besetzte ArraysRückblick – Workshop zu Arrays3JSON Teil 1
Was ist JSON?Prüfen, ob ein Schlüssel vorhanden istObjektmethodenSpread-Operator Teil 1Spread-Operator Teil 2Schlüssel entfernenRückblick – JSON-Schlüssel bearbeitenÜbe selbstständig: Online-JavaScript-Compiler