-
Notifications
You must be signed in to change notification settings - Fork 369
/
index.js
254 lines (190 loc) · 7.99 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
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
/* BU DERSDEKİ TÜM DEĞERLERİN DÖNMESİNİ (RETURN) UNUTMAYIN, AKSİ TAKDİRDE TEST KONTROLÜ ÇALIŞMAZ */
/* İşte veriniz bu */
const orijinalTatlar = [
"Muz",
"Vişne",
"Ceviz",
"Kestane",
"Kiraz",
"Çikolata",
"Fındık Çikolata",
"Fıstık Çikolata",
"Badem Çikolata",
"Franbuaz",
"Yaban Mersini",
"Tarçın",
"Badem",
"Kahve",
"Fındık",
"Anten Fıstık",
"Limon",
"Misket Limon",
"Akçaağaç Şurubu",
"Şeftali",
"Nane",
"Ananas",
"Ahududu",
"Çilek",
"Vanilya",
];
/* Görev 1: Diziyi kopyalama!
Orijinal tatların bulunduğu toplam 25 aromanın olduğu bir dizimiz var (yukarıya bakın). Bu görevde, bu dizi'ye veri yazma ve bu diziden veri okuma işlemleri yapacağız.
Tüm bu değişiklikleri yaparken, gerçek, orijinal 25 lezzetin listesini kaybetmek istemiyoruz. Bu yüzden orijinal diziyi kopyalamamız gerekmektedir!
/*
Aşağıdakileri yapmak için aşağıdaki kopyalama işlevini kullanın:
1. parametre olarak bir dizi alın - işlev çağrıldığında orijinalTatlar'i argüman olarak ileteceksiniz.
2. Alınan dizinin bir kopyasını döndür
*/
function kopyala(/*kod buraya*/){
/*kod buraya*/
}
/* Görev 2:
Bir dizinin tam olarak 25 çeşit olduğunu onaylayın. İşleviniz şunları kabul etmelidir:
1. parametre olarak bir dizi
2. Verilen dizinin 25 çeşit olup olmadığını kontrol edin
3. İşleviniz, dizinin uzunluğu 25 ise DOĞRU(true) ve dizinin uzunluğu 25 DEĞİLSE YANLIŞ(false) bir boolean döndürmelidir.
Örneğin: dizi25Cesit(orijinalTatlar) kodunuz düzgün çalışıyorsa true değerini döndürür.
*/
function dizi25Cesitmi(/*kod buraya*/){
/*kod buraya*/
}
/* Görev 3:
Pastane sahibi size yeni bir lezzet fikriyle geldi: Kakule! Bunun da çok tutacağından çok emin. Bu lezzeti eklemek için diziyi değiştirmeniz gerekir.
Aşağıdakileri yapmak için cesitEkle işlevini kullanın:
1. İlk parametrede tatlar dizisini argüman olarak alan bir dizi alın
2. İkinci parametrede yeni tadı 'string' argümanı olarak alın
3. İşlev, argüman olarak verilen yeni tadı, verilen dizinin başına ekler.
4. İşlev, yeni oluşan diziyi döndürmelidir
Örneğin: cesitEkle(orijinalTatlar, "Kakule") işlevi doğru çalıştığında ["Kakule", "Muz",..."Vanilya"] şeklinde dönmelidir
*/
function cesitEkle(/*kod buraya*/){
/*kod buraya*/
}
/* Cörev 4:
Hoooppppalaa! orijinalTatlar dizisinde artık 26 aroma var! Göreviniz, dizinin sonundan bir öğeyi kaldırmaktır.
Aşağıdakileri yapmak için sonCesitiKaldir işlevini kullanın:
1. Bir dizi alın
2. Alınan diziden son öğeyi kaldırın
3. Ortaya çıkan diziyi döndürün
Örneğin: sonCesitiKaldir(orijinalTatlar) çalıştırıldığında ["Kakule", "Muz",..."Çilek"] döndürülür.
*/
function sonCesitiKaldir(/*kod buraya*/){
/*kod buraya*/
}
/* Görev 5:
Dizideki belirli bir indeksteki çeşniyi döndüren bir işlev yazın.
Aşağıdakileri yapmak için aşağıdaki indekstekiCesitiGetir işlevini kullanın:
1. İlk parametrede tatlar dizisini argüman olarak alacak bir dizi alın
2. İkinci parametrede argüman olarak istenen dizini alacak bir sayı alın
3. Verilen indekste bulunan çeşiti döndürün
Örneğin: indekstekiCesitiGetir(orijinalTatlar, 2) çalıştırılmasıyla, Kakule'in başarıyla eklendiği varsayarsak sonuç "Ceviz" olucaktır.
*/
function indekstekiCesitiGetir(/*kod buraya*/){
/*kod buraya*/
}
/* Görev 6:
Firma, ürün yelpazesine daha fazla lezzet eklemek istediğinden, sadece ilk veya son aromayı keyfi olarak çıkarmak yerine, aroma adına göre aromaları kaldırmaları gerektiğini fark ederler. Göreviniz, verilen bir dizinde, ada göre bu tadı diziden çıkarmak.
Aşağıdakileri yapmak için ismeGoreCesitCikar işlevini kullanın:
1. İlk parametrede tatlar dizisini argüman olarak alın
2. İkinci parametrede, lezzet adını argüman olarak alın
3. Alınan diziden alınan aromayı kaldırın
4. Artık bir tane daha az lezzet içeren sonuçtaki diziyi döndürün
Örneğin: ismeGoreCesitCikar(orijinalTatlar, "Tarçın") çalıştırılmasıyla, "Tarçın" aroması kaldırılacağından uzunluğu 24 olan bir dizi döndürülür.
İPUCU: Bunun için .splice() kullanabilirsiniz.
*/
function ismeGoreCesitCikar(/*kod buraya*/){
/*kod buraya*/
}
/* Görev 7:
14 Şubat Sevgililer Günü'nde Firma, tüm çikolata lezzetlerini öne çıkaran bir promosyon malzemeleri oluşturmak istiyor.
Göreviniz, dizideki her bir öğeyi kontrol eden ve yalnızca verilen isimin geçtiği lezzetleri bulup orataya çıkan yeni diziyi döndüren, ismeGoreFiltrele adlı bir işlev yazmaktır.
Bu, farklı tatil ve kutlamalarda "Fındık", "Fıstık", "Çikolata" vb. lezzetler için filtreleme yapabilmenizi sağlar.
Aşağıdakileri yapmak için ismeGoreFiltrele işlevini kullanın:
1. İlk parametrede tatlar dizisini argüman olarak alacak bir dizi alın
2. İkinci parametrede filtre değerini argüman olarak alın (örnek: "Çikolata")
3. Dizideki tatlardan herhangi birinin filtre değerini içerip içermediğini kontrol edin.
4. Varsa, onları yeni bir diziye ekleyin
5. Filtrelenmiş tatları içeren yeni diziyi döndürün
Örneğin: ismeGoreFiltrele(orijinalTatlar, "Çikolata") çalıştırıldığında ["Çikolata", "Fındık Çikolata", "Fıstık Çikolata", "Badem Çikolata"]
İPUCU - bunu çözmenize yardımcı olması için .includes yöntemini kullanabilirsiniz.
Bu sorunu çözmek için GELİŞMİŞ DİZİ YÖNTEMLERİNİ (yani .filter) KULLANMAYIN.
*/
function ismeGoreFiltrele(/*kod buraya*/){
/*kod buraya*/
}
/* ALIŞTIRMA */
/* ALIŞTIRMA 1: Bir dizideki ortalama kelime sayısını döndüren bir fonksiyon yazın. Bu işlevi orijinalTatlar dizisinde test etmelisiniz, ancak bunu herhangi bir dizi için de kullanabilmelisiniz.
Aşağıdakileri yapmak için ortalamaKelimeSayisi işlevini kullanın:
1. orijinalTatlar dizisini alın
2. Dizideki öğe başına kaç kelime sayın
3. Dizideki öğe başına ortalama kelime sayısını döndürün
Örneğin: ortalamaKelimeSayisi(orijinalTatlar) 0 ile 2 arasında bir sayı döndürmelidir.
*/
function ortalamaKelimeSayisi(/*kod buraya*/){
/*kod buraya*/
}
/* ALIŞTIRMA 2:
Firma mevcut tatların yanında artık mevsimlik lezzetler ve hatta bölgesel lezzetler de sunmaktadır. Toplam 25 lezzet aromasını
orijinalTatlar, yeniTatlar, mevsimlikTatlar ve bolgeselTatlar'dan rastgele seçecek ve bunu rastgeleTatlar adlı bir dizide saklayan bir fonksiyon yazın.
Aşağıdakileri yapmak için rastgeleTatlar işlevini ve yeni dizileri kullanın:
1. Tüm farklı tatlara sahip dört diziyi alın (orijinalTatlar yukarıda, diğerleri aşağıda)
2. Dört diziden rastgele tatlar seçin
3. Uzunluğu 25 olan rastgeleTatlar adlı yeni bir dizi döndürün
Örneğin: rastgeleTatlar(orijinalTatlar, yeniTatlar, mevsimlikTatlar, bolgeselTatlar) çalıştırıldığında ["Kestane", "Ballı Badem,"..."Hindistan Cevizi", "Kuru üzüm"].
*/
function rastgeleTatlar(/*kod buraya*/){
/*kod buraya*/
}
// NEW DATA ARRAYS FOR STRETCH 2 ⬇️
// const yeniTatlar = [
// "Badem",
// "Ballı Badem",
// "Fıstık Ezmesi",
// "Profiterol",
// "Madlen Çikolata"
// ]
// const mevsimlikTatlar = [
// "Pekan",
// "Kaju",
// "Çikolatalı Mousse",
// "Fransız Vanilyası",
// "Yumurta",
// "Alman çikolatası",
// "Kek üzerine krema",
// "Hindistan Cevizi",
// "Kaymaklı Biskuvi",
// "Beyaz Çikolata",
// "Mango"
// ]
// const bolgeselTatlar = [
// "Kaymak",
// "Karpuz",
// "Karadut",
// "Turunç",
// "Portakal",
// "Yogurt",
// "Krem Peynir",
// "Kakao",
// "Karamel macchiato",
// "Kuru üzüm",
// "Peynir",
// "Karamel"
// ]
/* Lütfen bu satırın altındaki hiçbir şeyi değiştirmeyin */
function sa(){
console.log('Calışıyor');
return 'as';
}
sa();
module.exports = {
sa,
dizi25Cesitmi,
cesitEkle,
sonCesitiKaldir,
indekstekiCesitiGetir,
ismeGoreCesitCikar,
kopyala,
ismeGoreFiltrele,
ortalamaKelimeSayisi,
rastgeleTatlar
}