CodeBlanks Logo Icon CodeBlanks

İade etme

Kitap iade etme mantığını yazarsın.

returnBook fonksiyonu

returnBook, ödünç verilmiş bir kitabı iade eder. find ile kitabı bulursun; kitap varsa ve !available ise (ödünç verilmişse) true yapar ve true döndürür.

function returnBook(lib: Library, bookId: string): boolean {
  const book = lib.books.find(b => b.id === bookId);
  if (book && !book.available) {
    book.available = true;
    return true;
  }
  return false;
}

İade kontrolü

İade ederken kitabın ödünç verilmiş olması gerekir; yani available false olmalı. ! operatörü ile bunu kontrol ederiz.

// İade ederken kontrol:
if (book && !book.available) {
  book.available = true;
}

Uygulama returnBook fonksiyonu yaz

Book, Member, Library arayüzlerini tanımla. addBook ve borrowBook fonksiyonlarını yaz. returnBook(lib: Library, bookId: string): boolean fonksiyonu yaz: find ile kitabı bul, varsa ve !available ise true yap ve true döndür. Bir kitap ekle, ödünç al, iki kez iade etmeyi dene ve sonuçları yazdır.

Başlangıç kodu

index.ts
// Book, Member, Library arayüzlerini tanımla
// addBook ve borrowBook fonksiyonlarını yaz
// returnBook(lib: Library, bookId: string): boolean yaz
// kitabı bul, ödünç verilmişse available true yap ve true döndür
// bir kitap ekle, ödünç al, iki kez iade etmeyi dene ve yazdır

Örnek çözüm

index.ts
interface Book { id: string; title: string; author: string; available: boolean; }
interface Member { id: string; name: string; }
interface Library { books: Book[]; }

function addBook(lib: Library, book: Book): void {
  lib.books.push(book);
}

function borrowBook(lib: Library, bookId: string): boolean {
  const book = lib.books.find(b => b.id === bookId);
  if (book && book.available) {
    book.available = false;
    return true;
  }
  return false;
}

function returnBook(lib: Library, bookId: string): boolean {
  const book = lib.books.find(b => b.id === bookId);
  if (book && !book.available) {
    book.available = true;
    return true;
  }
  return false;
}

const lib: Library = { books: [] };
addBook(lib, { id: "b1", title: "TypeScript", author: "Ada", available: true });
borrowBook(lib, "b1");
console.log(returnBook(lib, "b1"));
console.log(returnBook(lib, "b1"));

Beklenen çıktı

true
false

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 returnBook ne zaman true döndürür?

  • Kitap bulunamazsa
  • Kitap zaten rafta ise
  • Kitap ödünç verilmişse Doğru cevap
  • Her zaman

Açıklama: returnBook, kitap bulunur ve available false (ödünç verilmiş) ise true döndürür. Kitap zaten rafta ise veya bulunamazsa false döndürür.

2 available değerini tamamla

Soru
book.available = ____;
Cevap
book.available = true;

Açıklama: İade edilen kitabın available alanı true yapılır; kitap tekrar rafta demektir. false ödünç anlamına gelir, "true" string ve 1 sayı yanlış tür.

3 İade etme parçaları

Kavram Anlamı
returnBook Kitap iade et
!book.available Ödünç verilmiş kontrolü
book.available = true Rafa geri koy
return true İade başarılı

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