درود دوستان! به اکمااسکریپت ۲۰۲۵ قابلیتهای جالبی اضافه شده که یکی از اونها بهبودهایی توی مجموعههای 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
خب دوستان همه این متدها رو بررسی کردیم. اما باید بدونیم که این متدها کاملاً جدید هستن و در مرحله ۴ پروپوزال اضافه شدن به جاوااسکریپت هستن. پس باید از در دسترس بودن اونها برای کاربران اطمینان حاصل کنیم. اینکه چه مرورگرهایی این ویژگیها رو پشتیبانی میکنن رو میتونین از ببینین. امیدوارم از این قسمت استفاده کرده باشین. روزتون خوش 👋😉
