CodeBlanks Logo Icon CodeBlanks

Görev tamamlama

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

index.js
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

index.js
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

Soru
function completeTask(tasks, index) {
  if (index < tasks.length) {
    tasks[index].done = ____;
  }
}
Cevap
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

Başlangıç bölümündeki tüm dersler