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

const alpha = new Set(['a', 'b', 'b', 'b', 'c']);

console.log(alpha); // Set { 'a', 'b', 'c' }

چیزی که ست به عنوان ورودی قبول می‌کنه باید از نوع Iterable باشه. یعنی مثل آرایه یا آبجکت که بشه اونها رو پیمایش کرد. همونطور که توی خط ۳ می‌بینید مقدارهای تکراری توی ست حذف میشن.

اضافه کردن به ست
برای اضافه کردن مقدار به ست، از متد add استفاده می‌کنیم:

const alpha = new Set(['a', 'b', 'b', 'b', 'c']);

alpha.add('d');
alpha.add('e').add('e').add('e').add('f');

console.log(alpha); // Set { 'a', 'b', 'c', 'd', 'e', 'f' }

حذف از ست
برای حذف از ست از متد delete استفاده می‌کنیم. اگه حذف با موفقیت انجام بشه خروجی true هست. در غیر این صورت false:

const alpha = new Set(['a', 'b', 'b', 'b', 'c']);

alpha.delete('b'); // true
alpha.delete('z'); // false

console.log(alpha); Set { 'a', 'c' }

برای بررسی اینکه یک آیتم توی ست وجود داره از has استفاده می‌کنیم:

const alpha = new Set(['a', 'b', 'b', 'b', 'c']);

console.log(alpha.has('h')); // false
console.log(alpha.has('b')); // true

خالی کردن ست
برای خالی کردن ست از متد clear استفاده می‌کنیم:

const alpha = new Set(['a', 'b', 'b', 'b', 'c']);

alpha.clear();
console.log(alpha); // Set {}

اندازه‌ی ست
برای اینکه تعداد آیتم‌های ست رو بدست بیاریم از پراپرتی size استفاده می‌کنیم:

const alpha = new Set(['a', 'b', 'b', 'b', 'c']);

console.log(alpha.size); // 3

 

خب الان که با ست آشنا شدیم، می‌تونیم از اون استفاده کنیم برای اینکه مقدارهای تکراری رو از توی یک آرایه حذف کنیم:

const numbers = [ 1, 2, 3, 4, 5, 6, 6, 7, 8, 8, 5 ];
const uniqueNums = [...new Set(numbers)];

console.log(uniqueNums); // [ 1, 2, 3, 4, 5, 6, 7, 8 ]

برای آشنایی کامل با آبجکت Set جاوااسکریپت، می‌تونید پست زیر رو بخونید:

 

 

منبع: