✍️ متد filter برای انتخاب بخشی از اعضاست. callback هر عضو را بررسی میکنه و اگر نتیجه شرط درست باشه، همان عضو در آرایه تازه قرار میگیره. برخلاف map، قرار نیست مقدار عضو عوض بشه؛ تعداد خروجی هم میتونه کمتر از ورودی باشه. ترتیب اعضای پذیرفتهشده مثل ترتیب اولیه باقی میمونه.
برای مثال، در فهرست سنها میتونیم فقط سنهای بزرگتر یا مساوی هجده را نگه داریم. اگر شرط دقیقاً >= 18 باشه، خود هجده هم پذیرفته میشه. انتخاب > به جای >= یک تفاوت کوچک در ظاهر و یک باگ واقعی در مرز ورودی ایجاد میکنه.
در کد پایین، اول هر عدد را با شرط مقایسه کن و کنارش علامت قبول یا رد بذار. بعد فقط پذیرفتهها را به ترتیب بنویس. خطای رایج اینه که filter را مرتبسازی حساب کنیم یا انتظار داشته باشیم عددهای قبولشده تغییر کنند. filter بهتنهایی نه ترتیب را جابهجا میکنه و نه محاسبه جدیدی روی مقدار انجام میده؛ callback این مثال فقط یک مقایسه است.
const prices = [70, 20, 50, 90, 50];
const selected = prices.filter(price => price >= 50);
console.log(selected);
فعالیت شما
آرایه چاپشده را با توجه به شرط >= و ترتیب اولیه انتخاب کن.