Menu
Coddy logo textTech

Gösterim Ekle

Coddy'nin JavaScript Journey'sinin Mantık ve Akış bölümünün bir parçası — ders 62 / 65.

challenge icon

Görev

Kolay

switch ifadenize yeni bir durum durumu ekleyin: addScreening.

addScreening için veri parametreleri şunları içerir:

  • movieId (sayı)
  • venueId (sayı)
  • date ('YYYY-MM-DD' formatında metin)
  • time ('HH:MM:SS' formatında metin)

Fonksiyon şunları yapmalıdır:

  1. Verilen movieId değerine sahip bir filmin ve verilen venueId değerine sahip bir mekanın festivalData içinde var olup olmadığını doğrulayın. İkisinden biri bulunamazsa, results dizisine "Movie or venue not found!" ekleyin
  2. Aynı mekanda, tarih ve saatte başka bir gösterim olmadığını kontrol edin - Gösterim zaten varsa, results dizisine "Screening already exists at this time!" ekleyin
  3. Şunları içeren yeni bir gösterim nesnesi oluşturun:
    • id: gösterim dizisinin uzunluğuna 1 ekleyerek oluşturun
    • veriden alınan movieId, venueId, date ve time
    • availableSeats: mekanın kapasitesine eşit
  4. Gösterimi festivalData.screenings dizisine ekleyin
  5. results dizisine "Screening added successfully!" ekleyin

Kendin dene

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;
}

Mantık ve Akış bölümündeki tüm dersler