نظرة عامة على المشروع
جزء من قسم Logic & Flow في رحلة JavaScript على Coddy — الدرس 60 من 65.
التحدي
سهلستقوم بإنشاء نظام لإدارة مهرجان سينمائي. ابدأ بتهيئة النظام بالبيانات المقدمة وإنشاء هيكل الوظيفة الرئيسية.
قم بإنشاء متغير يسمى 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()
}قم بإنشاء وظيفة تسمى manageFestival تأخذ معاملين:
- actions (مصفوفة من السلاسل النصية)
- data (مصفوفة من الكائنات)
يجب أن تقوم الوظيفة بما يلي:
- معالجة كل إجراء في مصفوفة actions بالتسلسل
- إنشاء مصفوفة results فارغة
- إنشاء جملة switch مع الحالات الأولية التالية:
listMovies: تضيفfestivalData.moviesإلى مصفوفةresultslistVenues: تضيفfestivalData.venuesإلى مصفوفةresultslistTickets: تضيفfestivalData.ticketsإلى مصفوفةresultslistScreenings: تضيفfestivalData.screeningsإلى مصفوفةresults- default: تضيف "Invalid action!" إلى مصفوفة results
- إرجاع مصفوفة results
جرّب بنفسك
const festivalData = {}; // ملء البيانات الأولية
function manageFestival(actions, data) {
let results = [];
actions.forEach((action, index) => {
const currentData = data[index];
switch(action) {
case "listMovies":
// اكتب الكود الخاص بك هنا
case "listVenues":
// اكتب الكود الخاص بك هنا
case "listTickets":
// اكتب الكود الخاص بك هنا
case "listScreenings":
// اكتب الكود الخاص بك هنا
default:
results.push("Invalid action!");
}
});
return results;
}جميع دروس Logic & Flow
1السلاسل النصية بعمق
أساسيات السلاسل النصيةالتكرار عبر السلاسل النصيةTemplate Literalsدوال السلاسل النصيةمراجعة - String Weaver4JSON الجزء الثاني
التكرار عبر JSONJSON المتداخلالتسلسل الاختياري في JSONالنسخ السطحي والعميقمراجعة - متجر الدراجاتمراجعة - النظام الشمسي10إدارة نظام المهرجان
نظرة عامة على المشروعإضافة الأفلام والأماكن2المصفوفات متعددة الأبعاد
أساسيات المصفوفات ثنائية الأبعادالوصول إلى عناصر المصفوفات ثنائية الأبعادالحلقات المتداخلة مع المصفوفات ثنائية الأبعادمراجعة - المصفوفات ثنائية الأبعادجمع وطرح المصفوفاتالمصفوفات المتعرجة (Jagged Arrays)المصفوفات ثلاثية الأبعاد وما بعدهاأنماط المصفوفات ثنائية الأبعاد الشائعةمراجعة - كل شيء عن المصفوفات5المجموعات - الجزء الأول
ما هي المجموعة؟التكرار عبر المجموعاتإضافة عنصرإزالة عنصرالتحقق من وجود عنصرالحجم وهل هي فارغةالنسخ والمسحملخص - أساسيات المجموعات8مواضيع شيقة حول الـ Arrays
تفكيك الـ Arrayاستخدام الـ Spread Syntax في الـ Arraysالـ Sparse Arraysمراجعة - ورشة عمل الـ Arrays3JSON الجزء الأول
ما هو JSON؟التحقق من وجود المفتاحObject MethodsSpread Operator الجزء الأولSpread Operator الجزء الثانيحذف المفاتيحمراجعة - معالجة مفاتيح JSON