CodeBlanks Logo Icon CodeBlanks

Ekleme ve arama

Kitap ekleme ve arama fonksiyonlarını yazarsın.

addBook fonksiyonu

addBook fonksiyonu, yeni bir Book nesnesini kütüphaneye ekler. push ile dizinin sonuna eklersin.

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

searchByTitle fonksiyonu

searchByTitle, başlığı belirli bir terimi içeren kitapları bulur. filter ile her kitabın title alanında includes kontrolü yaparsın.

function searchByTitle(lib: Library, title: string): Book[] {
  return lib.books.filter(b => b.title.includes(title));
}

Uygulama Ekleme ve arama yaz

Book, Member, Library arayüzlerini tanımla. addBook(lib: Library, book: Book): void fonksiyonu yaz. searchByTitle(lib: Library, title: string): Book[] fonksiyonu yaz: filter ve includes ile başlığı ara. İki kitap ekle ("TypeScript", "JavaScript") ve "Script" ile ara, eşleşen sayısını yazdır.

Başlangıç kodu

index.ts
// Book, Member, Library arayüzlerini tanımla
// addBook(lib: Library, book: Book): void yaz
// searchByTitle(lib: Library, title: string): Book[] yaz
// iki kitap ekle, bir başlıkla ara ve eşleşen sayısını 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 searchByTitle(lib: Library, title: string): Book[] {
  return lib.books.filter(b => b.title.includes(title));
}

const lib: Library = { books: [] };
addBook(lib, { id: "b1", title: "TypeScript", author: "Ada", available: true });
addBook(lib, { id: "b2", title: "JavaScript", author: "Bob", available: true });
const results = searchByTitle(lib, "Script");
console.log(results.length);

Beklenen çıktı

2

Soru ve cevaplar

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

1 searchByTitle fonksiyonu ne döndürür?

  • void
  • Tek bir Book
  • number
  • Book[] (eşleşen kitaplar) Doğru cevap

Açıklama: searchByTitle, başlığı arama terimini içeren tüm kitapları yeni bir dizi olarak döndürür. filter her zaman yeni dizi verir.

2 includes çağrısını tamamla

Soru
return lib.books.filter(b => b.title.____(title));
Cevap
return lib.books.filter(b => b.title.includes(title));

Açıklama: String includes metodu, bir alt dizeyi içerip içermediğini kontrol eder. find dizi metodudur, has ve contains string üzerinde yoktur.

3 Ekleme ve arama parçaları

Kavram Anlamı
addBook Kütüphaneye kitap ekle
searchByTitle Başlığa göre ara
lib.books.push(book) Listeye kitap ekle
b.title.includes(title) Başlık kontrolü

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