Görev tamamlama
- Node.js kursu
- Başlangıç
- Ders 86/116
- 6 dk
completeTask ile görev durumunu güncellemeyi öğrenirsin.
Görev tamamlama
Bir görevi tamamlandı işaretlemek için done özelliğini true yapman gerekir. Bunun için completeTask(tasks, index) fonksiyonunu yazacaksın.
Gövde şöyledir: if (index < tasks.length) { tasks[index].done = true; }. Önce indeksin sınırlar içinde olduğunu kontrol edersin; ardından o konumdaki görevin done özelliğini true yaparsın. Geçersiz indeks sessizce yok sayılır.
Aynı zamanda listTasks'ı güncelleyeceksin: done true ise [x], false ise [ ] gösterecek. Böylece kullanıcı hangi görevin tamamlandığını bir bakışta görür.
İndeks kontrolü
completeTask çağrıldığında indeksin geçerli olduğunu kontrol etmek gerekir. if (index < tasks.length) ile indeksin dizi sınırları içinde olduğunu doğrularsın. Geçersiz indeks sessizce yok sayılır; hata fırlatılmaz.
Bu kontrol, kullanıcı yanlış numara girdiğinde uygulamanın çökmesini önler. Örneğin 2 görevli bir listede completeTask(tasks, 10) çağrısı hiçbir şey yapmaz; tasks[10] undefined olur ve .done erişimi hata verirdi.
Bu desen JavaScript'te yaygındır: dizi erişiminden önce sınırları kontrol etmek güvenli kod yazmanın temelidir. Negatif indeksler de aynı şekilde ele alınır.
Uygulama Görevi tamamla ve listele
completeTask(tasks, index) fonksiyonunu tanımla. Gövdesi if (index < tasks.length) { tasks[index].done = true; } olsun. listTasks'ı güncelle: tasks.forEach((t, i) => console.log((t.done ? '[x] ' : '[ ] ') + t.title)). İki görev ekle, birinciyi tamamla, sonra listele.
Başlangıç kodu
function addTask(tasks, title) {
tasks.push({ title, done: false });
}
function listTasks(tasks) {
tasks.forEach((t, i) => console.log((i + 1) + '. ' + t.title));
}
// completeTask fonksiyonunu tanımla, listTasks'i güncelle, iki görev ekle, birinciyi tamamla ve listeleÖrnek çözüm
function addTask(tasks, title) {
tasks.push({ title, done: false });
}
function listTasks(tasks) {
tasks.forEach((t, i) => console.log((t.done ? '[x] ' : '[ ] ') + t.title));
}
function completeTask(tasks, index) {
if (index < tasks.length) {
tasks[index].done = true;
}
}
const tasks = [];
addTask(tasks, 'Ekmek al');
addTask(tasks, 'Süt al');
completeTask(tasks, 0);
listTasks(tasks);Beklenen çıktı
[x] Ekmek al [ ] Süt al
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 done değerini true yap
function completeTask(tasks, index) {
if (index < tasks.length) {
tasks[index].done = ____;
}
}
function completeTask(tasks, index) {
if (index < tasks.length) {
tasks[index].done = true;
}
}
Açıklama: done = true görevi tamamlandı işaretler.
2 Tamamlanan görev nasıl gösterilir?
- (i + 1) ile
- length ile
- title ile
- [x] ile Doğru cevap
Açıklama: [x] işareti tamamlanan görevi, [ ] ise bekleyeni gösterir.
3 Tamamlama parçalarını eşle
| Kavram | Anlamı |
|---|---|
completeTask |
Tamamlama fonksiyonu |
tasks[index].done = true |
Tamamlama ataması |
[x] |
Tamamlanan görev işareti |
[ ] |
Bekleyen görev işareti |