Soru ekleme
- Node.js kursu
- Orta seviye
- Ders 43/116
- 6 dk
addQuestion metoduyla quiz'e soru eklemeyi öğrenirsin.
Quiz sınıfı ve addQuestion
Şimdi Quiz sınıfını tanımlayacağız. Bu sınıf soruları bir dizide saklar. constructor boş bir dizi oluşturur: this.questions = [];. addQuestion metodu yeni bir soru ekler.
addQuestion(text, answer) metodu otomatik id üretir: const id = this.questions.length + 1;. Sonra new Question(id, text, answer) ile nesneyi yapıp this.questions.push(...) ile diziye ekler. Bu, bir kurucu (builder) desenidir: her çağrıda bir soru eklenir ve quiz büyür. Önceki dersin Question sınıfını alıp Quiz sınıfını ekleyeceğiz. Böylece quiz, soruları yöneten bir kapsayıcı olur.
Builder deseni
addQuestion bir builder desenidir. Her çağrı quiz'e bir soru ekler. Örnek: quiz.addQuestion("Başkent?", "Ankara"); quiz.addQuestion("En büyük şehir?", "İstanbul");. İki çağrıdan sonra quiz.questions.length 2 olur.
Builder deseni, nesneleri adım adım kurmanın temel yoludur. Tek bir kurucu ile tüm veriyi vermek yerine, her parçayı ayrı bir metotla eklersin. Bu, kodu okunaklı kılar: her addQuestion çağrısı tek bir soru tanımlar. Ayrıca id otomatik üretildiği için, çağrı sırası id'yi belirler. İlk çağrı id=1, ikinci id=2. Bu, quiz'in tutarlı kalmasını sağlar.
Uygulama Quiz sınıfını ve addQuestion metodunu ekle
Önceki dersin Question sınıfını al. class Quiz ekle: constructor'da this.questions = [], addQuestion(text, answer) metodunda const id = this.questions.length + 1; this.questions.push(new Question(id, text, answer));. Son satırlar hazır: iki soru ekle ve sayıyı yazdır.
Başlangıç kodu
class Question {
constructor(id, text, answer) {
this.id = id;
this.text = text;
this.answer = answer;
}
}
class Quiz {
constructor() {
this.questions = [];
}
// addQuestion metodunu ekle
// buraya yaz
}
const quiz = new Quiz();
quiz.addQuestion("Başkent?", "Ankara");
quiz.addQuestion("En büyük şehir?", "İstanbul");
console.log("Soru sayısı: " + quiz.questions.length);Örnek çözüm
class Question {
constructor(id, text, answer) {
this.id = id;
this.text = text;
this.answer = answer;
}
}
class Quiz {
constructor() {
this.questions = [];
}
addQuestion(text, answer) {
const id = this.questions.length + 1;
this.questions.push(new Question(id, text, answer));
}
}
const quiz = new Quiz();
quiz.addQuestion("Başkent?", "Ankara");
quiz.addQuestion("En büyük şehir?", "İstanbul");
console.log("Soru sayısı: " + quiz.questions.length);Beklenen çıktı
Soru sayısı: 2
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 addQuestion gövdesini tamamla
addQuestion(text, answer) {
const id = this.questions.length + 1;
this.questions.____(new Question(id, text, answer));
}
addQuestion(text, answer) {
const id = this.questions.length + 1;
this.questions.push(new Question(id, text, answer));
}
Açıklama: push dizinin sonuna yeni soruyu ekler.
2 Parçayı rolüne eşle
| Kavram | Anlamı |
|---|---|
this.questions |
Soru dizisi |
addQuestion |
Soru ekler |
questions.length + 1 |
Yeni id üretir |
new Question |
Soru nesnesi oluşturur |
3 quiz.addQuestion çağrıldığında ne olur?
quiz.addQuestion("Soru?", "Cevap")- İlk soru güncellenir
- Quiz silinir
- Yeni soru dizinin sonuna eklenir Doğru cevap
- Soru sayısı azalır
Açıklama: addQuestion yeni soruyu dizinin sonuna ekler.