Ekleme ve arama
- TypeScript kursu
- Başlangıç
- Ders 82/89
- 5 dk
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
// 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
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
return lib.books.filter(b => b.title.____(title));
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ü |