✍️ گاهی همه عضوهای مطابق را نمیخوایم؛ فقط اولین نتیجه کافی است. متد find از ابتدا جلو میره، شرط را روی عضوها بررسی میکنه و با اولین پاسخ درست، خود آن عضو را برمیگردونه. اگر هیچ عضوی پیدا نشه، نتیجه undefined است. این تفاوت با filter مهمه، چون filter همیشه آرایه برمیگردونه.
مثلاً برای پیدا کردن اولین کتاب با کد مشخص، نتیجه find یک شیء کتاب است و میشه ویژگی عنوانش را خواند. ولی اگر کتابی وجود نداشته باشه، باید قبل از استفاده از ویژگیها، نبودن نتیجه را مدیریت کنیم. در این تمرین برای داشتن خروجی روشن و قابل تبدیل به JSON، نبودن محصول را با null نشان میدیم.
کد محصول رشته است؛ مقایسه دقیق با === انجام بده. اگر چند محصول کد برابر دارند، اولین آنها معتبره و نباید تا آخر حلقه جایگزین بشه. خطای رایج، برگرداندن آرایه تکعضوی یا استفاده از filter بهجای نتیجه مستقیم است. آرایه خالی هم فقط حالت دیگری از «پیدا نشد» حساب میشه.
فعالیت شما
findProduct(products, code) را کامل کن. products آرایه اشیای دارای code و name رشتهای است و code ورودی رشته است. اولین شیء با code دقیقاً برابر را برگردان؛ نبودن نتیجه یا آرایه خالی => null. مثال [{code:'a',name:'دفتر'}] و 'a' => همان شیء.