درود دوستان! به اکمااسکریپت ۲۰۲۵ قابلیت‌های جالبی اضافه شده که یکی از اونها بهبودهایی توی مجموعه‌های Set هست. به این مجموعه متدهایی اضافه شده که کاربردپذیری اونها رو خیلی بهتر کرده. توی این پست می‌خوایم این قابلیت‌های جدید رو بررسی کنیم.

اگه با Set آشنایی ندارید می‌تونید این پست رو ببینید:

بریم که این متدها رو بررسی کنیم 🔥

 

متد difference

اگه ۲ مجموعه Set داشته باشیم، و بخوایم از مجموعه اول اعضایی رو داشته باشیم که توی مجموعه دوم حضور ندارن، می‌تونیم از متد difference استفاده کنیم:

const a = new Set([1, 3, 5, 7, 9]);
const b = new Set([1, 3, 5, 11, 13]);

<<a.difference(b);>> // Set(2) { 7, 9 }

خروجی این متد یک مجموعه Set جدید هست.

 

متد symmetricDifference

اگه ۲ مجموعه Set داشته باشیم، با استفاده از این متد می‌تونیم مجموعهٔ جدید اعضای این دو مجموعه داشته که اشتراکات اونها حذف شدن:

const a = new Set([<<1>>, <<3>>, <<5>>, 7, 9]);
const b = new Set([<<1>>, <<3>>, <<5>>, 11, 13]);

a.symmetricDifference(b); // Set(2) { 7, 9, 11, 13 }

 

متد intersection

توی ریاضیات مبحث اشتراک A ∩ B رو یادتونه؟ این متد دقیقاً همون کار رو انجام میده. وقتی ۲ مجموعه Set داشته باشیم، متد intersection اعضایی که توی دو مجموعه تکرار شدن رو بهمون برمی‌گردونه:

const a = new Set([1, 3, 5, 7, 9]);
const b = new Set([1, 3, 5]);

a.intersection(b); // Set(3) { 1, 3, 5 } 

خروجی این متد هم یک مجموعه جدید Set هست.

 

متد union

و باز هم ریاضیات. اگه اجتماع (A ∪ B) رو یادتون باشه، این متد دقیقاً همون کار رو انجام میده. اگه ۲ مجموعه Set داشته باشیم، این متد همهٔ اعضای دو مجموعه رو در قالب یک مجموعه جدید بهمون برمی‌گردونه:

​const a = new Set([1, 3, 5, 7, 9]);
const b = new Set([1, 3, 5]);

a.union(b); // Set(5) { 1, 3, 5, 7, 9 } 

اصلی‌ترین قابلیتی که توی همه مجموعه‌های Set داریم اینه که عضو تکراری توی اونها دیده نمیشه.

 

متد isDisjointFrom

خروجی این متد یک Boolean هست، و زمانی true برمی‌گردونه که ۲ مجموعه Set هیچ عضو مشترکی نداشته باشن:

const a = new Set([1, 2, 3]);
const b = new Set([7, 8, 9]);

a.isDisjointFrom(b); // true


const c = new Set([<<1>>, 2, 3]);
const d = new Set([<<1>>, 7, 9]);

c.isDisjointFrom(d); // false

 

متد isSubsetOf

اگه می‌خوایم ببینیم همهٔ اعضای یک Set، دقیقاً توی یک Set دیگه تکرار میشه یا نه، از این متد استفاده می‌کنیم. خروجی این متد یک Boolean هست:

const a = new Set([2, 3, 4]);
const b = new Set([1, 2, 3, 4, 5]);

a.isSubsetOf(b); // true

const c = new Set([2, 3, 4]);
const d = new Set([2, 3, 4]);

c.isSubsetOf(d); // true

const e = new Set([2, 3, 4, <<5>>]);
const f = new Set([2, 3, 4]);

e.isSubsetOf(f); // false

 

متد isSupersetOf

این متد شبیه متد بالا هست، اما حین مقایسه جای مجموعه‌ها عوض میشه. اگه ۲ مجموعه Set داشته باشیم، و اگه بخوایم مطمئن بشیم همه اعضای مجموعه دوم توی مجموعه اول هست، از این متد استفاده می‌کنیم:

const a = new Set([1, 2, 3, 4, 5]);
const b = new Set([2, 3, 4]);

a.isSupersetOf(b); // true

const c = new Set([2, 3, 4]);
const d = new Set([2, 3, 4]);

c.isSupersetOf(d); // true

const e = new Set([2, 3, 4]);
const f = new Set([2, 3, 4, 5]);

e.isSupersetOf(f); // false

 

خب دوستان همه این متدها رو بررسی کردیم. اما باید بدونیم که این متدها کاملاً جدید هستن و در مرحله ۴ پروپوزال اضافه شدن به جاوااسکریپت هستن. پس باید از در دسترس بودن اونها برای کاربران اطمینان حاصل کنیم. اینکه چه مرورگرهایی این ویژگی‌ها رو پشتیبانی می‌کنن رو می‌تونین از ببینین. امیدوارم از این قسمت استفاده کرده باشین. روزتون خوش 👋😉

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set