-
Notifications
You must be signed in to change notification settings - Fork 302
/
Copy pathindex.js
211 lines (146 loc) · 8.77 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
/*Bu görevleri yaparken çıktıların doğru çalıştığını kontrol etmeniz için console.log'u sıklıkla kullanmanızı tavsiye ediyoruz.*/
///////////////Menu Elemanları ///////////////////
const cay = {isim: "Çay", fiyat: 4, kategori: "İçecekler"};
const serpmeKahvalti = {isim: "Serpme Kahvaltı", fiyat: 16, kategori:"Kahvaltı"};
/* Görev 1a: Nesneler döndüren bir fonksiyon yazın
Aşağıdaki MenuElemaniOlustur fonksiyonunu, yukarıda gördüğünüz cay ve serpmeKahvalti (isim, fiyat, kategori) nesnelerini oluşturacak şekilde yazın.
Fonksiyonun özellikleri:
1. Nesne(object) oluşturmak için gerekli parametleri alacak
2. Alınan değerleri kullanarak oluşturulan nesne(object) döndürülecek(return)
Örnek MenuElemaniOlustur('Cheeseburger', 8, 'Burgerler') şunu döndürmeli: {isim: 'Cheeseburger', fiyat: 8, kategori: 'Burgerler'}
*/
function MenuElemaniOlustur(/*Kodlar buraya*/){
/*Kodlar buraya*/
}
/* Görev 1b (otomatik test yok):
Fonksiyonu çağırın!
Aşağıdakileri uygulayarak MenuElemaniOlustur fonksiyonunuzu test edin:
1. MenuElemaniOlustur ile nesne oluşturmak için parametreleri girerek fonksiyonu çağırın (menu elemanları)
2. Kendi seçtiğiniz isim,fiyat ve kategorileri kullanarak en az 3 menü elemanı oluşturun
3. Tüm döndürülen sonuçları konsolda gözlemleyin (console.log)
Örnek: MenuElemaniOlustur("Karışık Pizza",5,"Pizzalar") şunu döndürür: {isim:"Karışık Pizza",fiyat:5,kategori:"Pizzalar"}
*/
/* Görev 2:
Özel bir öğle yemeği yiyorsun! Öğretmen ve öğrencilere %25, diğer kişilere %10 indirim var. Aşağıdaki burger nesnesine, indirimi fiyatı otomatik olarak hesaplayan bir metot ekleyin.
burger nesnesine aşağıdakileri uygulayın:
1. burger nesnesine adı indirim olan bir metot ekleyin
2. Argüman olarak indirim metodu parametre olarak bir string kabul edecek ve bu string "öğretmen", "öğrenci", ya da "diğer" değerine sahip olacak.
3. Bu stringe göre gerekli indirimli fiyat döndürülecek
4. String argümanına, 'öğretmen', 'öğrenci', ya da 'diğer' değerlerinden birini kullanarak fonksiyonunuzu çağırın.
Örnek: burger.indirim("öğretmen") 13.5 döndürmeli ve burger.indirim("diğer") 16.2 döndürmeli
*/
const burger = {
isim: "Burger",
fiyat: 18,
kategori: "Öğle Yemeği",
}
///////////////Değerlendirmeler (MVP)///////////////////
const degerlendirmeler = [
{isim: "Nalan", puan: 5, geribildirim:"Mükemmel atmosfer ve mükemmel vegan seçenekleri!"},
{isim: "Kuddusi", puan: 3, geribildirim:"Benim zevkime göre biraz fazla yenilikçi, burger iyi ama fiyatı yüksek"},
{isim: "Kamuran", puan: 4, geribildirim:"eğlenceli bilgiler ve havalı hisler"},
{isim: "Elif", puan: 4.5, geribildirim:"Evimden pek çıkmıyorum ama çıktığımda sadece buraya geliyorum. Şiddetle tavsiye ederim."},
{isim: "Pınar", puan: 3, geribildirim: "atıştırmalıklar harika ve gün içinde çalışmak için güzel bir cafe alanı."},
{isim: "Ahmet", puan: 2, geribildirim: "Bu mekan beni fazla etkilemedi. Menüde özel bir şey yok ve çok pahalı. Atmosferi de ben beğenmedim ama başkaları beğenebilir." },
{isim: "Latife", puan: 4, geribildirim: "Kesinlikle karaoke Cumalarını seviyorum! Yemek ve içki çeşitleri iyi."},
{isim: "Reyna", puan: 3.5, geribildirim: ""},
]
/* Görev 3 (ototest yok):
Yukarıdaki degerlendirmeler dizisini(array) kullanarak:
1. Sadece Ahmet'in geribildirimini konsolda görüntüleyin - fonksiyona gerek yok
*/
/* Görev 4 (ototest yok):
Reyna'nın geribildirimi girilmemiş! Aşağıdakileri uygulayın: (fonksiyona gerek yok)
1. Bu geribildirimi Reyna'nın değerlendirmesine ekleyin - "bu mekan bir harika dostum, yine de garsonun gülümsememesinden puan kırdım"
2. degerlendirmeler dizisini konsolda görüntüleyerek çalışmanızı kontrol edin
*/
/* Görev 5:
isim, puan, geribildirim'i içeren bir değerlendirme nesnesi oluşturup, yeni değerlendirmeyi mevcut dizinin(array) sonuna ekleyip sonuç dizisini döndüren bir fonksiyon tanımlayın.
DegerlendirmeEkle fonksiyonunu kullanarak aşağıdakileri uygulayın:
1. Verilen degerlendirmeler dizisini fonksiyonun İLK parametresi olarak alacak
2. Şu parametreleri alacak: isim, puan, and geribildirim; bunları İKİNCİ, ÜÇÜNCÜ ve DÖRDÜNCÜ parametre olarak alacak
3. Fonksiyon yeni bir nesne yaratacak ve dizinin sonuna bu nesneyi ekleyecek.
🌟 ÖRNEK: DegerlendirmeEkle(degerlendirmeler, 'Hurşut', 2, 'Boktan yemekler!') dizinin sonuna şunu eklemeli: {isim: 'Hurşut', puan: 2, geribildirim: 'Boktan yemekler!'}
4. Güncellenmiş diziyi döndürecek
*/
function DegerlendirmeEkle(/*Kodlar buraya */){
/*Kodlar buraya */
}
/* Görev 6:
Dizideki değerlendirmelerin anahtarına(key,index) bağlı olarak bir değerlendirme döndüren bir fonksiyon yazın
Aşağıdaki AnahtardanDegerlendirmeAl fonksiyonu kullanarak aşağıdakileri uygulayın:
1. Argüman olarak bir diziyi ilk parametresi olarak alacak
2. Dizinin kullanılmak istenen indeksini ikinci parametre olarak alacak
3. Fonksiyon şu stringi döndürmeli: "{isim} isimli kişi {puan} puan verdi ve şunları yazdı: {geribildirim}"
Örnek: AnahtardanDegerlendirmeAl(degerlendirmeler,0) şunu döndürmeli: "Nalan isimli kişi 5 puan verdi ve şunları yazdı: Mükemmel atmosfer ve mükemmel vegan seçenekleri!"
*/
function AnahtardanDegerlendirmeAl(/*Kodlar buraya*/) {
/*Kodlar buraya*/
}
/* Görev 7:
Diziden en son değerlendirmeyi döndüren adı `SonDegerlendirmeyiAl` olan bir fonksiyon yazın
SonDegerlendirmeyiAl fonksiyonuna aşağıdakileri uygulayın:
1. Parametre olarak bir dizi alacak, degerlendirmeler dizisini alarak çağırılacak
2. Dizinin son elemanını şu şekilde döndürecek: "{isim} isimli kişi {puan} puan verdi ve şunları yazdı: {geribildirim}"
3. Argüman olarak degerlendirmeler dizisini kullanarak fonksiyonu çağırın
Örnek: SonDegerlendirmeyiAl(degerlendirmeler) şunu döndürmeli: "Reyna isimli kişi 3.5 puan verdi ve şunları yazdı: bu mekan bir harika dostum, yine de garsonun gülümsememesinden puan kırdım".
Not: Eğer 4. görevi başarıyla yaptıysanız kişinin geribildirimi boş görünmemeli
*/
function SonDegerlendirmeyiAl(/*Kodlar buraya*/) {
/*Kodlar buraya*/
}
/////////////// BONUS GÖRVLER////////////////////
/** BONUS 1:
PuanaGoreDegerlendirmeAl fonksiyonuna aşağıdakileri uygulayın:
1. Tüm değerlendirmeleri içeren diziyi alacak
2. Bir puan alacak
3. Girilen puan aralığında bulunan tüm değerlendirmeleri döndürecek
Örnek: PuanaGoreDegerlendirmeAl(degerlendirmeler, 4) 4 ile 4.9 puan aralığındaki tüm değerlendirmeleri döndürecek :
[
{isim: "Kamuran", puan: 4, geribildirim:"eğlenceli bilgiler ve havalı hisler},
{isim: "Elif", puan: 4.5, geribildirim:"Evimden pek çıkmıyorum ama çıktığımda sadece buraya geliyorum. Şiddetle tavsiye ederim."},
{isim:"Latife", puan: 4, geribildirim: "Kesinlikle karaoke Cumalarını seviyorum! Yemek ve içki çeşitleri iyi."}
]
*/
function PuanaGoreDegerlendirmeAl(/* Kodlar buraya */) {
/* Kodlar buraya */
}
/* BONUS 2:
UzunDegerlendirmeleriAl fonksiyonuna aşağıdakileri uygulayın:
1. Tüm değerlendirmeleri içeren diziyi alacak
2. Geribildiriminde 15'den fazla kelime içeren tüm nesneleri bir dizi olarak döndürecek
*/
function UzunDegerlendirmeleriAl(/* Kodlar buraya */) {
/* Kodlar buraya */
}
/* BONUS 3:
Bu ek görevde degerlendirmeler dizisi kullanılmayacak! Bu görevde kendi nesnenizi yaratmanız gerekmektedir.
arabaYapici fonksiyonunu kullanarak aşağıdakileri uygulayın:
1. Kilometre sayacı olarak kullanılacak (kaç kilometre yol gittiğini sayacak) bir değişkeni parametre olarak alacak
2. Nesnenin içine kilometre sayacını artıracak bir sürüş metodu ekleyin
3. Nesneyi döndürün
4. Döndürülen nesnedeki kilometre sayacı şu özellikleri taşımalı:
a. Sürüş metodu ne zaman, nerden çağırılırsa çağırılsın mutlaka parametre olarak bir mesafe(km) alacak
b. Aynı zamanda sürüş metodu parametre olarak gönderilen değeri, kilometre sayacına ekleyecek
c. Sonra sürüş metodu güncellenmiş kilometre sayacının değerini döndürecek
Örnek: Adı araba1 olan ve kilometre sayacı 10 olan bir nesne oluşturduk diyelim.
Şu şekilde metotu çağıralım araba1.surus(100)
Bu 110 döndürmelidir çünkü başlangıç kilometre sayacını 10 olarak tanımladık ve 100 km arabayı sürdük.
*/
function arabaYapici(/* Kodlar buraya */) {
/* Kodlar buraya */
}
/* Buradan aşağıdaki kodları değiştirmeyin lütfen */
function sa(){
console.log('Kodlar çalışıyor');
return 'as';
}
sa();
module.exports = {
sa,
MenuElemaniOlustur,
burger,
DegerlendirmeEkle,
AnahtardanDegerlendirmeAl,
SonDegerlendirmeyiAl,
}