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.
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:
- Kiểm tra xem phim có
movieIdđã cho và địa điểm cóvenueIdđã cho có tồn tại trongfestivalDatahay 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ả - 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ả
- 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
- Thêm suất chiếu vào mảng
festivalData.screenings - 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
4JSON phần 2
Duyệt qua JSONJSON lồng nhauOptional chaining trong JSONSao chép nông và sâuÔn tập: Cửa hàng xe đạpÔn tập: Hệ Mặt Trời7Hệ thống quản lý thư viện
Tổng quan dự ánThêm sách10Quản lý hệ thống lễ hội
Tổng quan dự ánThêm phim và địa điểm2Mảng nhiều chiều
Kiến thức cơ bản về mảng 2 chiềuTruy cập phần tử trong mảng 2 chiềuVòng lặp lồng nhau với mảng 2 chiềuÔn tập về mảng 2 chiềuPhép cộng và phép trừ ma trậnMảng không đềuMảng 3 chiều và hơn nữaCác mẫu thường gặp với mảng 2 chiềuÔn tập về mảng3JSON phần 1
JSON là gì?Kiểm tra khóa có tồn tạiPhương thức của đối tượngToán tử spread phần 1Toán tử spread phần 2Xóa khóaÔn tập: thao tác với khóa trong JSONTự luyện tập: Trình biên dịch JavaScript online