TypeScript
Birleştirme
Tüm parçaları birleştirerek çalışan quiz'i yazarsın.
Özet - Quiz uygulaması
Bu projede bir quiz uygulamasının tüm parçalarını birleştirdin: Soru modeli, soru havuzu, cevap kontrolü ve skor hesaplama. Her parça kendi sorumluluğunu taşır ve birlikte çalışan bir uygulama oluşturur. Model veriyi, havuz kaynağı, kontrol mantığı, skor sonucu temsil eder.
interface Soru { metin: string; dogruIndex: number; }
function cevapKontrol(d: number, c: number): boolean {
return d === c;
}
Final montaj
Son montajda tüm parçalar tek bir akışta birleşir: soru havuzu alınır, her soru için cevap kontrolü yapılır, sonuçlar boolean[] dizisinde toplanır ve skorHesapla ile toplam bulunur. map metodu her soruyu bir boolean sonuç haline getirir.
const sonuclar = sorular.map(
(s, i) => cevapKontrol(s.dogruIndex, cevaplar[i])
);
Uygulama Çalışan quiz
Soru interface'i tanımla: metin: string, dogruIndex: number. cevapKontrol fonksiyonu (dogruIndex: number, cevap: number): boolean olsun ve dogruIndex === cevap dönsün. skorHesapla fonksiyonu (sonuclar: boolean[]): number olsun, for...of ile true'ları saysın. sorular dizisi iki Soru içersin: { metin: "a", dogruIndex: 0 } ve { metin: "b", dogruIndex: 1 }. cevaplar dizisi [0, 0] olsun. sorular.map ile her soru için cevapKontrol çağırıp sonuclar dizisini oluştur ve skorHesapla(sonuclar) sonucunu console.log ile yazdır.
Örnek çözümü göster
interface Soru {
metin: string;
dogruIndex: number;
}
function cevapKontrol(dogruIndex: number, cevap: number): boolean {
return dogruIndex === cevap;
}
function skorHesapla(sonuclar: boolean[]): number {
let skor = 0;
for (const s of sonuclar) {
if (s) skor++;
}
return skor;
}
const sorular: Soru[] = [
{ metin: "a", dogruIndex: 0 },
{ metin: "b", dogruIndex: 1 }
];
const cevaplar: number[] = [0, 0];
const sonuclar = sorular.map((s, i) => cevapKontrol(s.dogruIndex, cevaplar[i]));
console.log(skorHesapla(sonuclar));
Kendini test et
-
Quiz uygulamasında birleştirme sırası aşağıdakilerden hangisidir?
- Skor, kontrol, havuz, model
- Model, kontrol, havuz, skor
- Havuz, model, skor, kontrol
- Kontrol, skor, model, havuz
Cevabı göster
Model, kontrol, havuz, skor — Doğru sıra: önce model tanımlanır, sonra cevap kontrolü yazılır, soru havuzu eklenir ve en son skor hesaplanır.
-
map ile indeks erişimi
const sonuclar = sorular.map((s, i) => cevapKontrol(s.dogruIndex, cevaplar[____]));
Cevabı göster
const sonuclar = sorular.map((s, i) => cevapKontrol(s.dogruIndex, cevaplar[i]));
-
Birleştirme parçaları
- Soru interface
- Veri modeli
- sorular dizisi
- Soru havuzu
- cevapKontrol
- Doğrulama fonksiyonu
- skorHesapla
- Skor hesabı
Sıradaki ders: Hava durumu modeli