Node.js
İş mantığı
Fonksiyonlar ve koşullu mantıkla iş kurallarını yazarsın.
İş mantığı fonksiyonları
Veri modelini kurduk; şimdi iş mantığını ekleyeceğiz. İki fonksiyon yazacağız: addTask(title) yeni görev ekler, completeTask(id) görevi tamamlanmış işaretler.
addTask otomatik id üretir: const id = tasks.length + 1;. Böylece her yeni görev bir sonraki numarayı alır. createTask ile nesneyi yapıp tasks.push ile diziye ekler. completeTask ise tasks.find ile görevi bulur ve task.done = true yapar. Bu iki fonksiyon uygulamanın çekirdek davranışını oluşturur. Önceki dersin çözümünü alıp bunları ekleyeceğiz.
find ile arama
completeTask fonksiyonu tasks.find kullanır. find dizide koşula uyan ilk öğeyi döndürür. Örnek: tasks.find(function(t) { return t.id === id; }). Bu, id'si eşleşen görevi bulur.
Bulunan görevi if (task) { task.done = true; } ile güncelleriz. if (task) kontrolü, id eşleşmezse find'in undefined döndürdüğü durumda hatayı önler. Bu, koşullu mantığın gerçek bir kullanımdır: yalnızca görev bulunduysa güncelle. Aynı deseni ileride filter ile tamamlanan görevleri saymak için de kullanacağız.
Uygulama addTask ve completeTask fonksiyonlarını ekle
Önceki dersin çözümünü al. addTask(title) fonksiyonu ekle: const id = tasks.length + 1; ile id üret, tasks.push(createTask(id, title)) ile ekle. completeTask(id) fonksiyonu ekle: tasks.find ile bul, task.done = true yap. Son satırlar hazır: addTask("E-posta"); completeTask(1); console.log(tasks[0].done);
Örnek çözümü göster
const path = require("path");
const DATA_FILE = path.join("data", "tasks.json");
function createTask(id, title) {
return { id: id, title: title, done: false };
}
let tasks = [];
tasks.push(createTask(1, "Alışveriş"));
function addTask(title) {
const id = tasks.length + 1;
tasks.push(createTask(id, title));
}
function completeTask(id) {
const task = tasks.find(function(t) { return t.id === id; });
if (task) { task.done = true; }
}
addTask("E-posta");
completeTask(1);
console.log(tasks[0].done);
Kendini test et
-
Parçayı rolüne eşle
- addTask
- Yeni görev ekler
- completeTask
- Görevi tamamlar
- tasks.find
- id'ye göre bulur
- tasks.length + 1
- Yeni id üretir
-
completeTask gövdesini tamamla
function completeTask(id) {
const task = tasks.find(function(t) { return t.id === id; });
if (task) { task.____ = true; }
}
Cevabı göster
function completeTask(id) {
const task = tasks.find(function(t) { return t.id === id; });
if (task) { task.done = true; }
}
-
tasks.find ne döndürür?
tasks.find(function(t) { return t.id === 5; })
- Tüm görevleri
- Görev sayısını
- Koşula uyan ilk görevi
- Yeni bir dizi
Cevabı göster
Koşula uyan ilk görevi — find koşula uyan ilk öğeyi verir.
Sıradaki ders: fs ile kalıcılık