محمد پیمان راد
محمد پیمان راد
خواندن ۲ دقیقه·۲ سال پیش

مفاهیم Map و Set در جاوااسکریپت , قسمت دوم

در قسمت اول این مقاله در مورد Map صحبت کردیم :

https://vrgl.ir/BJ6Eu

و در این قسمت به Set می پردازیم:

تعریف ست:

مجموعه ای از مقادیر است که این مقادیر از هر نوع داده ای می توانند باشند. هر مقدار در این مجموعه فقط یک بار می تواند اضافه شود پس بهتر است بگوییم Set مجموعه ای از مقادیر یکتا (unique) است.

ایجاد ست:

ست می تواند بر اساس هر شی قابل پیمایش (iterable) ایجاد شود که این شی در اکثر اوقات یک آرایه است.

البته می توانیم یک ست خالی هم بسازیم و مقادیر دلخواه را در آن درج کنیم.

مثال:

let array = [1,2,3,4,5]; let set = new Set(array); console.log(set);

خروجی:

متد ها و پراپرتی های مهم ست:

  • set.add(value)

مقداری را در ست درج می کند و سپس ست را بر می گرداند. البته این مقدار در صورتی در ست درج می شود که از قبل در ست موجود نباشد.

  • set.delete(value)

مقدار مورد نظر را از ست حذف می کند.اگر این مقدار وجود داشت true و اگر نه false بر می گرداند.

  • set.has(value)

اگر مقدار موردنظر در ست وجود داشت true و در غیر این صورت false بر می گرداند.

  • set.clear()

ست را کاملا خالی می کند.

  • set.size

این پراپرتی تعداد مقادیر موجود در ست را بر می گرداند.

پیمایش ست:

این داده ساختار در حلقه for of قابل استفاده است:

let set = new Set(); set.add(&quotitem1&quot); set.add(&quotitem2&quot); set.add(&quotitem3&quot); for (let item of set) { console.log(item); }

خروجی:

ست نیز دارای متد forEach است:

let set = new Set([&quotitem1&quot,&quotitem2&quot,&quotitem3&quot]); set.forEach( (value,valueAgain,set) => { console.log(value); } )

خروجی مشابه وقتی خواهد بود که از حلقه for of استفاده کردیم. در کد بالا دو پارامتر اول کال بکی که به forEach می دهیم مقدار یکسانی در هر دور خواهند داشت که آن هم عنصر موردنظر در آن دور هست.در واقع این به دلیل سازگاری (compatibility) با Map است.

تبدیل ست به آرایه:

روش های زیر امکان پذیر است:

let set = new Set(); set.add(1); set.add(2); set.add(3); //Using Spread Syntax let arr = [...set]; //Using Array.from let arr = Array.from(set);

مثالی در رابطه با ست:

فرض کنیم می خواهیم کاریر هایی که صفحه ای از سایت را مشاهده می کنند را داشته باشیم ولی هر کاریر ممکن است این صفحه را چندین بار مشاهده کند ولی ما می خواهیم کاربر های غیر تکراری را داشته باشیم پس از ست استفاده می کنیم:

let set = new Set(); let user1 = {name:&quotUser1&quot}; let user2 = {name:&quotUser2&quot}; let user3 = {name:&quotUser3&quot}; //Users are added to the set when visited this page //One user might visit this page multiple times set.add(user1); set.add(user2); set.add(user1); set.add(user3); set.add(user3); set.add(user2); //But Set Only Stores Unique Values console.log(set.size); //Output: 3 for (let user of set) { console.log(user.name) /*Output : User1 User2 User3 */ }




امیدوارم از این سری مقاله لذت برده باشید.روز خوش!


منابع و مراجع:

javascript.info

MDN

اکما اسکریپتجاوااسکریپتبرنامه نویسیآموزش برنامه نویسی
در حال ماجراجویی در دنیای پایان ناپذیر وب
شاید از این پست‌ها خوشتان بیاید