İş mantığı
- Node.js kursu
- Başlangıç
- Ders 114/116
- 6 dk
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);
Başlangıç kodu
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ş"));
console.log(tasks.length);
// addTask ve completeTask fonksiyonlarını ekle
// buraya yaz
addTask("E-posta");
completeTask(1);
console.log(tasks[0].done);Örnek çözüm
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);Beklenen çıktı
true
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Parçayı rolüne eşle
| Kavram | Anlamı |
|---|---|
addTask |
Yeni görev ekler |
completeTask |
Görevi tamamlar |
tasks.find |
id'ye göre bulur |
tasks.length + 1 |
Yeni id üretir |
2 completeTask gövdesini tamamla
function completeTask(id) {
const task = tasks.find(function(t) { return t.id === id; });
if (task) { task.____ = true; }
}
function completeTask(id) {
const task = tasks.find(function(t) { return t.id === id; });
if (task) { task.done = true; }
}
Açıklama: done özelliği true yapılır.
3 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 Doğru cevap
- Yeni bir dizi
Açıklama: find koşula uyan ilk öğeyi verir.