Menu
CoddyTech

添加电影和场馆

本课属于 Coddy JavaScript 学习旅程的“逻辑与流程”单元。第 61 课,共 65 课。

challenge icon

挑战

简单

在 switch 语句中新增两个 case:addMovie 和 addVenue。

对于 addMovie,data 参数包含:

  • title(字符串)
  • director(字符串)
  • year(数字)
  • mainGenre(字符串)
  • secondGenre(字符串)

函数应当:

  1. 创建一个新的电影对象,其中包含:
    • id:将 movies 数组的长度加 1 来生成
    • 从 data 中获取 title、director、year、mainGenre 和 secondGenre
    • avgRating:0
    • available:true
  2. 将这部电影添加到 festivalData.movies 数组中
  3. 将 Movie added successfully! 添加到 results 数组中

对于 addVenue,data 参数包含:

  • name(字符串)
  • capacity(数字)

函数应当:

  1. 创建一个新的场地对象,其中包含:
    • id:将 venues 数组的长度加 1 来生成
    • 从 data 中获取 name 和 capacity
  2. 将该场地添加到 festivalData.venues 数组中
  3. 将 Venue added successfully! 添加到 results 数组中

亲手试试

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;
                
            default:
                results.push("Invalid action!");
        }
    });
    
    return results;
}

逻辑与流程中的所有课

自己练习: JavaScript 在线编译器