Menu
CoddyTech

Tambahkan Pemutaran

Termasuk bagian Logika dan Alur dalam perjalanan JavaScript di Coddy. Pelajaran 62 dari 65.

challenge icon

Tantangan

Mudah

Tambahkan kasus uji baru ke pernyataan switch-mu: addScreening.

Untuk addScreening, parameter data berisi:

  • movieId (angka)
  • venueId (angka)
  • date (string dengan format 'YYYY-MM-DD')
  • time (string dengan format 'HH:MM:SS')

Fungsi harus:

  1. Memvalidasi apakah film dengan movieId yang diberikan dan tempat dengan venueId yang diberikan ada di festivalData. Jika salah satunya tidak ditemukan, tambahkan "Movie or venue not found!" ke hasil
  2. Periksa apakah belum ada pemutaran di tempat, tanggal, dan waktu yang sama. Jika pemutaran sudah ada, tambahkan "Screening already exists at this time!" ke hasil
  3. Buat object pemutaran baru dengan:
    • id: buat dengan menambahkan 1 ke panjang array pemutaran
    • movieId, venueId, date, dan time dari data
    • availableSeats: sama dengan kapasitas tempat
  4. Tambahkan pemutaran ke array festivalData.screenings
  5. Tambahkan Screening added successfully! ke array hasil

Coba sendiri

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

Semua pelajaran di Logika dan Alur

Latihan sendiri: Compiler JavaScript online