سلام دوست عزیز😃👋

به مسابقه «ورودی بوت‌کمپ کداستار - Frontend» خوش آمدی!

لینک‌های مفید برای شرکت در مسابقه

هرگونه ارتباط با سایر شرکت‌کنندگان و یا استفاده از ابزارهای تولید کد، مثل chatGPT و... در مسابقات کوئرا ممنوع است و بعد از شناسایی از لیست شرکت‌کنندگان مسابقه حذف می‌شوید.

در طول مسابقه، می‌توانید سؤالات خود را از قسمت «سوال بپرسید» مطرح کنید.

موفق باشید 😉✌

جدول‌ اطلاعات


جدول‌ اطلاعات🔗

توضیح تصویر

پروژه‌ٔ اولیه🔗

فایل پروژه را می‌توانید از طریق این این لینک دانلود کنید.

ساختار پروژه به شکل زیر است:

initial_project/
├─ js/
│  └─ data.js
├─ index.html
├─ main.js
└─ styles.css
Plain text

در فایل data.js، تابعی وجود دارد که اطلاعات لیستی از ماشین‌ها در آن موجود است.

جزئیات پیاده‌سازی🔗

۱. اینپوت، سلکتور و تیبل را می‌توانید از طریق آیدی‌های زیر بدست آورید:

  • searchInput
  • yearFilter
  • carsTable

۲. این خط را مشاهده کنید:

fetchCarsData().then()
JavaScript

با ادامه دادن آن، اطلاعات ماشین‌ها را به‌دست آورید.

۳. تابع renderCars را به‌گونه‌ای پیاده‌سازی کنید که:

  • اگر لیست خالی بود، emptyListString به‌عنوان محتوای بدنهٔ تیبل نمایش داده شود.

توضیح تصویر

  • اگر لیست شامل آیتم بود، برای هر آیتم یک ردیف جدول با ۴ ستون زیر نمایش داده شود:
<td><!-- نام ماشین --></td>
<td><!-- مدل ماشین --></td>
<td><!-- سال ساخت ماشین --></td>
<td><!-- رنگ ماشین --></td>     
HTML
  1. تابع createYearFilterList را طوری کامل کنید که :
  • منوی کشویی سال، بر اساس داده‌های ماشین‌ها ساخته شود.
  • داده‌های ماشین شامل سال ساخت است.
  • سال‌ها به‌صورت نزولی مرتب شوند

توضیح تصویر

توضیح تصویر

۵. تابع applyFilters را طوری کامل کنید که:

  • بر اساس محتوای سرچ‌شده یا سال انتخاب‌شده یا ترکیب هر دو، محتوای تیبل را فیلتر کند.
    searchInput.addEventListener("input");
    JavaScript
  • ادامه این ایونت را به‌گونه‌ای بنویسید که ۲.۵ ثانیه پس از توقف تایپ کاربر، عملیات فیلتر انجام و تیبل آپدیت شود.
  1. این خط را مشاهده کنید :
    yearFilter.addEventListener("change");
    JavaScript
  • ادامه این ایونت را به‌گونه‌ای بنویسید که ۱ ثانیه پس از انتخاب سال، عملیات فیلتر انجام و تیبل آپدیت شود.

نکات🔗

۱. هر زمان که کاربر شروع به تایپ کرد یا سالی را انتخاب نمود، فارغ از بازه‌های زمانی، باید فوراً اسپینر لودینگ با استفاده از تابع showSpinner نمایش داده شود. ۲. بازه‌های زمانی ذکرشده حتماً باید رعایت شوند. در غیر این صورت، هدف برنامه محقق نخواهد شد. ۳. تغییرات فیلترها فقط باید در بدنهٔ تیبل اعمال شوند.

آنچه باید آپلود کنید🔗

فایلی که آپلود خواهید کرد باید دارای فرمت .zip باشد و دارای ساختار زیر باشد:

answer/
└─ main.js
Plain text

موفق باشید 🌟

ارسال پاسخ برای این سؤال
در حال حاضر شما دسترسی ندارید.