İçeriğe geç

Arama sayfasının adresi

Web / frontend · Zorluk 1/5 · TypeScript · 23 satırKöken: Kurgu

Görev

Yapay zekâdan istenen

Ürün arama formundaki filtrelerden arama sayfasının adresini üret. term kullanıcının yazdığı arama metnidir, category sabit bir listeden gelen kısa addır (yalnız küçük harf ve tire), page 1'den başlayan tam sayıdır. base soru işareti içermeyen bir yoldur (/search). Boş alanları ve 1. sayfayı adrese yazma; arama metninin başındaki ve sonundaki boşlukları kırp.

Teslim notu

Yapay zekâ kodu teslim ederken şunu yazdı:

“Boş alanlar atlanıyor, arama metni kırpılıyor, 1. sayfa adrese eklenmiyor. Her filtre adreste kendi parametresiyle yer alıyor.”

Yapay zekânın yazdığı kod

TypeScript23 satır

Hatalı bulduğun satırları işaretle; her işarete önem seç ve nedenini bir cümleyle yaz.

Satıra tıkla ya da dokun. Klavyede satıra gidip Enter'a bas.

0/5 işaret
Önem nasıl seçilir
  • KritikVeri kaybı, güvenlik açığı ya da para kaybı
  • ÖnemliGörevin istediği bir durumda kullanıcı yanlış sonuç alır
  • KüçükGörevin dışında kalan nadir bir uç durum ya da okunurluk

Test konusunda önem, testin yakalamadığı hatalı uygulamanın etkisine göre belirlenir.

Gerekçe puanlanmaz; sonuçta örnek cevapla karşılaştırırsın.

export interface SearchFilters {
  term: string;
  category: string;
  page: number;
}
6
export function buildSearchUrl(base: string, filters: SearchFilters): string {
  const params: string[] = [];
  const term = filters.term.trim();
  if (term !== "") {
    params.push(`q=${term}`);
  }
  if (filters.category !== "") {
    params.push(`category=${filters.category}`);
  }
  if (filters.page > 1) {
    params.push(`page=${filters.page}`);
  }
  if (params.length === 0) {
    return base;
  }
  return `${base}?${params.join("&")}`;
}

Kanıtlayan test

Doğru seçenek, bu kodda başarısız olan, yani hatayı ortaya çıkaran testtir.

Test seçenekleri
Göndermek için en az bir satır işaretle.

Gönderince sayaca yedi bilgi gider; gerekçe metnin cihazında kalır. Veriler