Menu
CoddyTech

Seans 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 test durumu ekleyin: addScreening.

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

  • movieId (sayı)
  • venueId (sayı)
  • date ('YYYY-MM-DD' biçiminde dize)
  • time ('HH:MM:SS' biçiminde dize)

Fonksiyon şunları yapmalıdır:

  1. Verilen movieId değerine sahip bir filmin ve verilen venueId değerine sahip bir salonun festivalData içinde bulunup bulunmadığını doğrulayın. Bunlardan biri bulunamazsa results dizisine "Movie or venue not found!" ekleyin
  2. Aynı salonda, tarihte ve saatte başka bir gösterim olmadığını kontrol edin. Gösterim varsa results dizisine "Screening already exists at this time!" ekleyin
  3. Aşağıdakileri içeren yeni bir gösterim nesnesi oluşturun:
    • id: gösterim dizisinin uzunluğuna 1 ekleyerek oluşturun
    • Verilerden movieId, venueId, date ve time değerleri
    • availableSeats: salonun kapasitesine eşit
  4. festivalData.screenings dizisine gösterimi ekleyin
  5. Screening added successfully! değerini sonuçlar dizisine 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

Kendi başına pratik yap: Online JavaScript derleyicisi