Seans Ekle
Coddy'nin JavaScript Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 62 / 65.
Görev
Kolayswitch ifadenize yeni bir test durumu ekleyin: addScreening.
addScreening için veri parametreleri şunları içerir:
- movieId (sayı)
- venueId (sayı)
- date ('YYYY-MM-DD' biçiminde dize)
- time ('HH:MM:SS' biçiminde dize)
Fonksiyon şunları yapmalıdır:
- Verilen
movieIddeğerine sahip bir filmin ve verilenvenueIddeğerine sahip bir salonunfestivalDataiçinde bulunup bulunmadığını doğrulayın. Bunlardan biri bulunamazsa results dizisine "Movie or venue not found!" ekleyin - Aynı salonda, tarihte ve saatte başka bir gösterim olmadığını kontrol edin. Gösterim varsa results dizisine "Screening already exists at this time!" ekleyin
- Aşağıdakileri içeren yeni bir gösterim nesnesi oluşturun:
- id: gösterim dizisinin uzunluğuna 1 ekleyerek oluşturun
- Verilerden movieId, venueId, date ve time değerleri
- availableSeats: salonun kapasitesine eşit
festivalData.screeningsdizisine gösterimi ekleyinScreening added successfully!değerini sonuçlar dizisine ekleyin
Kendin dene
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;
}Mantık ve Akış bölümündeki tüm dersler
1Dizeleri Derinlemesine İnceleme
Dize TemelleriDizeler Üzerinde YinelemeŞablon DizeleriDize MetotlarıTekrar - Dize Dokuyucu4JSON Bölüm 2
JSON Üzerinde Döngü Kurmaİç İçe JSONJSON İsteğe Bağlı ZincirlemeYüzeysel ve Derin KopyaTekrar - Bisikletçi DükkânıTekrar - Güneş Sistemi7Kütüphane Yönetim Sistemi
Projeye Genel BakışKitap Ekleme10Festival Sistemini Yönet
Proje Genel BakışıFilmler ve Mekanlar Ekle2Çok Boyutlu Diziler
2 Boyutlu Dizilerin Temelleri2 Boyutlu Dizi Elemanlarına Erişim2 Boyutlu Dizilerle İç İçe DöngülerTekrar - 2 Boyutlu DizilerMatris Toplama ve ÇıkarmaDüzensiz Diziler3 Boyutlu Diziler ve ÖtesiYaygın 2 Boyutlu Dizi KalıplarıTekrar - Diziler Hakkında Her Şey5Kümeler Bölüm 1
Küme Nedir?Kümeler Üzerinde YinelemeBir Eleman EklemeBir Elemanı KaldırmaBir Elemanın Var Olup Olmadığını Kontrol EtmeBoyut ve Boş Olma DurumuKopyalama ve TemizlemeÖzet - Kümelerin Temelleri8Dizilerle İlgili İlginç Konular
Dizi DestructuringDizilerde Spread SözdizimiSeyrek DizilerTekrar - Diziler Atölyesi3JSON Bölüm 1
JSON nedir?Anahtarın Var Olup Olmadığını Kontrol EtmeNesne MetotlarıSpread Operatörü Bölüm 1Spread Operatörü Bölüm 2Anahtarları KaldırmaTekrar - JSON Anahtarlarını İşlemeKendi başına pratik yap: Online JavaScript derleyicisi