CodeBlanks Logo Icon CodeBlanks

Ödünç alma

Kitap ödünç alma mantığını yazarsın.

borrowBook fonksiyonu

borrowBook, bir kitabı ödünç verir. Önce find ile kitabı bulursun; kitap varsa ve available ise false yapar ve true döndürür. Aksi halde false döndürür.

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;
}

available kontrolü

Kitabı ödünç vermeden önce available alanını kontrol et. true ise ödünç verebilirsin; false ise zaten biri ödünç almış demektir. && ile iki koşulu birleştirirsin.

// Ödünç vermeden önce kontrol:
if (book && book.available) {
  book.available = false;
}

Uygulama borrowBook fonksiyonu yaz

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

Başlangıç kodu

index.ts
// Book, Member, Library arayüzlerini tanımla
// addBook(lib: Library, book: Book): void yaz
// borrowBook(lib: Library, bookId: string): boolean yaz
// kitabı bul, available ise false yap ve true döndür
// bir kitap ekle, iki kez ödünç almayı 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;
}

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

Beklenen çıktı

true
false

Soru ve cevaplar

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

1 Kitap ödünç alındığında available alanı ne olur?

  • false yapılır Doğru cevap
  • undefined yapılır
  • true kalır
  • silinir

Açıklama: Ödünç verilen kitabın available alanı false yapılır. Bu, kitabın rafta olmadığını gösterir; kitap silinmez.

2 available kontrolünü tamamla

Soru
if (book && book.____) {
Cevap
if (book && book.available) {

Açıklama: Kitabın ödünç verilebilir olduğunu book.available ile kontrol edersin. title, author ve id ödünç durumuyla ilgilenmez.

3 Ödünç alma parçaları

Kavram Anlamı
borrowBook Kitap ödünç al
book.available Ödünç durumu kontrolü
book.available = false Ödünç verildi işareti
lib.books.find(...) İd'ye göre kitap bul

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