آبجکت 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 جاوااسکریپت، میتونید پست زیر رو بخونید:
منبع: