Set در جاوا اسکریپت


ES6 یک type جدید با نام Set ارائه می دهد که مجموعه ای از مقادیر منحصر به فرد(unique) از هر type را ذخیره می کند. برای ایجاد یک Set جدید ، از syntax زیر باید استفاده کنید:
1 |
let setObject = new Set(); |
سازنده Set
یک iterable object به صورت اختیاری دریافت می کند.اگر شما یک iterable object به سازنده Set
پاس دهید،تمامی element های object به set اضافه می شوند:
1 |
let setObject = new Set(iterableObject); |
متدهای مفید Set
Set
متدهای مفید و کاربردی زیر را در اختیار ما می گذارد:
- add(value) : یک element جدید با value مشخص به set اضافه می کند. این متد
Set
object را برمی گرداند ، بنابراین ، می توانید این متد را با متدهای دیگر Set به صورت زنجیره ای استفاده کنید. - ()clear : تمامی element های درون Set را حذف می کند.
- delete(value) : یک element مشخص شده توسط value را حذف می کند.
- ()entries : یک Iterator جدید که آرایه ای از [value، value] است، برمی گرداند.
- has(value) : اگر یک element با value پاس داده شده،وجود داشته باشید مقدار true و در غیر اینصورت false برمی گرداند.
- ()keys : مشابه با تابع ()values است
مثال هایی از Set در جاوا اسکریپت
مثال زیر نشان می دهد که چطور می توان یک Set جدید با آرایه ایجاد کرد:
1 |
let chars = new Set(['a', 'a', 'b', 'c', 'c']); |
تمامی element های درون set باید منحصر به فرد باشند،بنابراین chars فقط شامل 3 عنصر متفاوت a,b و c است.
1 |
console.log(chars); |
خروجی :
1 |
Set { 'a', 'b', 'c' } |
اگر شما از typeof
برای chars استفاده کنید،object را برخواهد گرداند.
1 |
console.log(typeof(chars)); |
خروجی :
1 |
object |
chars یک instance (نمونه) از Set type است.بنابراین statement زیر true بر می گرداند.
1 2 |
let result = chars instanceof Set; console.log(result); |
برای گرفتن تعداد element های درون set ، شما باید از size
استفاده کنید:
1 2 |
let size = chars.size; console.log(size);// 3 |
برای اضافه کردن یک element به set، باید از متد ()add استفاده کنید:
1 2 |
chars.add('d'); console.log(chars); |
خروجی :
1 |
Set { 'a', 'b', 'c', 'd' } |
با توجه به اینکه ()add قابلیت استفاده به صورت زنجیره ای را دارد، شما می توانید چندین element را به صورت زیر به set اضافه کنید:
1 2 |
chars.add('e') .add('f'); |
اگر شما قصد داشته باشید بررسی کنید که آیا یک element خاص در set وجود دارد،باید از متد ()has استفاده کنید.
1 2 |
let exist = chars.has('a'); console.log(exist);// true |
statement زیر مقدار false بر می گرداند، زیرا chars
دارای ‘z’ نیست
1 2 |
exist = chars.has('z'); console.log(exist); // false |
برای حذف کردن یک element خاص از set شما باید از متد ()delete استفاده کنید.statement زیر ‘f’ را از chars
حذف می کند.
1 2 |
chars.delete('f'); console.log(chars); // Set {"a", "b", "c", "d", "e"} |
خروجی :
1 |
Set { 'a', 'b', 'c', 'd', 'e' } |
برای حذف کردن تمامی element های set، باید از متد ()clear استفاده کنید.
1 2 |
chars.clear(); console.log(chars); // Set{} |
Set ترتیب درج element ها را حفظ می کند،بنابراین زمانی که شما یک حلقه بر روی element ها اجرا کنید،به ترتیب اضافه شدن به آن ها دسترسی خواهید داشت.فرض کنید یک set به شکل زیر برای نقش های کاربری کاربران دارید:
1 2 3 4 |
let roles = new Set(); roles.add('admin') .add('editor') .add('subscriber'); |
مثال زیر از حلقه for…of برای تکرار در chars استفاده می کند.
1 2 3 |
for (let role of roles) { console.log(role); } |
خروجی:
1 2 3 |
admin editor subscriber |
دیدگاهتان را بنویسید