Menu
CoddyTech
flag Ar iconالعربيةdown icon

إضافة الأفلام والأماكن

جزء من قسم المنطق وتدفق التنفيذ في رحلة JavaScript على Coddy. الدرس 61 من 65.

challenge icon

التحدي

سهل

أضف حالتين جديدتين إلى عبارة switch الخاصة بك: addMovie وaddVenue.

بالنسبة إلى addMovie، تحتوي معلمة data على:

  • title (سلسلة نصية)
  • director (سلسلة نصية)
  • year (رقم)
  • mainGenre (سلسلة نصية)
  • secondGenre (سلسلة نصية)

يجب أن تنفّذ الدالة ما يلي:

  1. إنشاء كائن فيلم جديد يتضمن:
    • id: يتم إنشاؤه بإضافة 1 إلى طول مصفوفة movies
    • title وdirector وyear وmainGenre وsecondGenre من data
    • avgRating: 0
    • available: true
  2. إضافة الفيلم إلى مصفوفة festivalData.movies
  3. إضافة Movie added successfully! إلى مصفوفة results

بالنسبة إلى addVenue، تحتوي معلمة data على:

  • name (سلسلة نصية)
  • capacity (رقم)

يجب أن تنفّذ الدالة ما يلي:

  1. إنشاء كائن موقع جديد يتضمن:
    • id: يتم إنشاؤه بإضافة 1 إلى طول مصفوفة venues
    • name وcapacity من data
  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 عبر الإنترنت