درود دوستان! یکی از ویژگی‌های جالبی که از ES6 به جاوااسکریپت اضافه‌شده آبجکت Set هست که کاربرد اصلی اون، نگهداری مجموعه‌ای از مقادیر به صورت یکتا هست.

موارد زیر رو توی این قسمت یاد می‌گیریم:

 

آبجکت Set چیه؟

با آبجکت Set می‌تونیم مجموعه‌ای از مقادیر به صورت یکتا داشته باشیم. یعنی توی Set هیچ آیتم تکراری وجود نداره. نحوه ساختن یک آبجکت Set بصورت زیر هست:

new Set();

کافیه از کلمه‌کلیدی new استفاده کنیم. خب اینجا یک آبجکت خالی درست شد که در حال حاضر هیچ مقداری نداره. اگه هنگام ساختن این آبجکت، به اون یک مقدار قابل پیمایش (Iterable) پاس بدیم، مجموعه‌ی یکتایی از اعضا خواهیم داشت:

const numbers = [1, 2, 2, 2, 3];

const uniqueNumbers = new Set(numbers);

for (const num of uniqueNumbers) {
  alert(num); // 1, 2, 3
}

همونطور که می‌دونیم، آبجکت Set مقادیر یکتایی رو نگهداری می‌کنه. این مقادیر می‌تونن رشته، عدد، آبجکت، NaN و undefined باشن.

const items = new Set([undefined, undefined, undefined]);
alert(items.size); // 1

در حالیکه دو NaN هیچوقت با هم برابر نیستن (NaN !== NaN)، آبجکت Set فقط شامل یک مقدار NaN خواهد بود:

const items = new Set([NaN, NaN, NaN]);

alert(items.size); // 1

برای اطلاعات بیشتر درباره NaN می‌تونید پست زیر رو بخونید:

 

چند تا عضو داریم؟

اگه بخوایم تعداد اعضای آبجکت رو متوجه بشیم کافیه پراپرتی رو فراخونی کنیم: