映画と会場の追加
CoddyのJavaScriptジャーニー「論理とフロー」セクションの一部 — レッスン 61/65。
チャレンジ
簡単switch文に2つの新しいケース、addMovieとaddVenueを追加してください。
addMovieの場合、dataパラメータには以下が含まれます:
- title (文字列)
- director (文字列)
- year (数値)
- mainGenre (文字列)
- secondGenre (文字列)
関数は以下の処理を行う必要があります:
- 以下のプロパティを持つ新しい映画オブジェクトを作成します:
- id: movies配列の長さに1を加えて生成します
- title, director, year, mainGenre, secondGenre: dataから取得します
- avgRating: 0
- available: true
- 映画を
festivalData.movies配列に追加します results配列にMovie added successfully!を追加します
addVenueの場合、dataパラメータには以下が含まれます:
- name (文字列)
- capacity (数値)
関数は以下の処理を行う必要があります:
- 以下のプロパティを持つ新しい会場オブジェクトを作成します:
- id: venues配列の長さに1を加えて生成します
nameとcapacity: dataから取得します
- 会場を
festivalData.venues配列に追加します results配列にVenue added successfully!を追加します
自分で試してみよう
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;
}