فرض کن مرتب باید بررسی کنی یک ID داخل لیست وجود داره یا نه:
const allowedIds = [12, 25, 48, 73, 91];
if (allowedIds.includes(userId)) {
// ...
}
برای یک آرایه کوچک کاملاً اوکیه.
اما اگر این لیست خیلی بزرگ باشه و این بررسی رو هزاران بار انجام بدی، هر بار باید داخل Array جستجو بشه.
اینجا Set میتونه انتخاب بهتری باشه:
const allowedIds = new Set([
12, 25, 48, 73, 91
]);
if (allowedIds.has(userId)) {
// ...
}
مزیت اصلی Set اینه که برای بررسی وجود یک مقدار، معمولاً انتخاب مناسبتریه؛ مخصوصاً وقتی تعداد Lookupها بالاست.
ولی یه نکته:
این یعنی «همیشه Set سریعتره»؟ نه.
اگر فقط ۵ مقدار داری و یک بار دنبال چیزی میگردی، ساختن Set احتمالاً هیچ مزیت معناداری نداره.
بهینهسازی یعنی ساختار داده رو بر اساس نوع استفاده انتخاب کنی، نه اینکه هرجا اسم Performance اومد، Set بریزی وسط. 😄