Menu
CoddyTech

Thêm suất chiếu

Thuộc phần Logic và luồng chương trình trong hành trình JavaScript của Coddy. Bài học 62 trên 65.

challenge icon

Thử thách

Dễ

Thêm test case mới vào câu lệnh switch: addScreening.

Với addScreening, các tham số dữ liệu gồm:

  • movieId (số)
  • venueId (số)
  • date (chuỗi theo định dạng 'YYYY-MM-DD')
  • time (chuỗi theo định dạng 'HH:MM:SS')

Hàm cần:

  1. Kiểm tra xem phim có movieId đã cho và địa điểm có venueId đã cho có tồn tại trong festivalData hay không. Nếu không tìm thấy một trong hai, thêm "Movie or venue not found!" vào kết quả
  2. Kiểm tra xem có suất chiếu nào ở cùng địa điểm, ngày và giờ hay không. Nếu đã có suất chiếu, thêm "Screening already exists at this time!" vào kết quả
  3. Tạo một đối tượng suất chiếu mới gồm:
    • id: tạo bằng cách cộng 1 vào độ dài mảng suất chiếu
    • movieId, venueId, date và time lấy từ dữ liệu
    • availableSeats: bằng sức chứa của địa điểm
  4. Thêm suất chiếu vào mảng festivalData.screenings
  5. Thêm Screening added successfully! vào mảng kết quả

Tự làm thử

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

Tất cả bài học trong Logic và luồng chương trình

Tự luyện tập: Trình biên dịch JavaScript online