متدهای مجموعه (Set Methods)
در «مجموعه (Set)» هر مقدار یکتا است. اینجا متدهای مهم را با مثال های کوتاه می بینیم. ساده جلو می رویم تا سریع یاد بگیری. سپس چند تمرین کوچک داری.
ساخت مجموعه با new Set()
با سازنده new Set() یک Set می سازیم. می توانیم آرایه بدهیم.
مثال: ساخت از آرایه
// Create a new Set
const letters = new Set(["a", "b", "c"]);
add(): افزودن عضو یکتا
با add() عضو تازه اضافه می شود. عضو تکراری اثری ندارد.
مثال: افزودن ساده
letters.add("d");
letters.add("e");
مثال: بی اثر بودن تکراری
letters.add("a");
letters.add("b");
letters.add("c");
letters.add("c");
letters.add("c");
letters.add("c");
letters.add("c");
letters.add("c");
نکته: ویژگی اصلی Set «یکتا بودن» مقادیر است. افزودن تکراری، تغییری نمی دهد.
size: شمارش اعضا
با ویژگی size تعداد اعضای Set را می گیریم.
مثال: گرفتن اندازه
// Create a new Set
const mySet = new Set(["a", "b", "c"]);
// The number of elements are
mySet.size;
پیمایش اعضا
با حلقه for..of می توانیم همه اعضا را بخوانیم.
مثال: for..of روی Set
// Create a Set
const letters = new Set(["a", "b", "c"]);
// List all Elements
let text = "";
for (const x of letters) {
text += x;
}
has(): وجود یک مقدار
متد has() بررسی می کند مقدار دلخواه در Set هست یا نه.
مثال: پرسش وجودی
// Create a Set
const letters = new Set(["a", "b", "c"]);
// Does the Set contain "d"?
const answer = letters.has("d");
forEach(): اجرای تابع روی هر عضو
با forEach() برای هر عضو یک تابع اجرا می کنیم.
مثال: ساخت رشته از اعضا
// Create a Set
const letters = new Set(["a", "b", "c"]);
// List all entries
let text = "";
letters.forEach(function(value) {
text += value;
});
values() و keys(): گرفتن Iterator
Set کلید ندارد. بنابراین keys() همان values() را برمی گرداند.
مثال: استفاده از values()
// Create a Set
const letters = new Set(["a", "b", "c"]);
// Get all Values
const it = letters.values();
// List all Values
let text = "";
for (const entry of it) {
text += entry;
}
مثال: keys() برابر values()
// Create a Set
const letters = new Set(["a", "b", "c"]);
// Create an Iterator
const myIterator = letters.keys();
// List all Elements
let text = "";
for (const x of myIterator) {
text += x;
}
entries(): جفت های [value, value]
در Map جفت [key, value] داریم. اما Set کلید ندارد. پس entries() جفت [value, value] می دهد.
مثال: پیمایش entries()
// Create a Set
const letters = new Set(["a", "b", "c"]);
// Get all Entries
const it = letters.entries();
// List all Entries
let text = "";
for (const entry of it) {
text += entry;
}
تمرین های سه گانه
- یک Set از شماره های دانش آموزی بساز.
- چند شماره تکراری اضافه کن و
sizeرا ببین. - با
has()وجود یک شماره را چک کن.
نکته: اگر عملیات منطقی می خواهی، بخش منطق مجموعه ها را ببین.
جمع بندی سریع
- add() عضو تازه می افزاید.
- size تعداد اعضا را می دهد.
- has() وجود مقدار را چک می کند.
- values()/keys() Iterator برمی گردانند.
- entries() جفت های [value, value] می دهد.
برای مفاهیم پایه، صفحه مجموعه ها را بخوان. سپس به منطق مجموعه ها برو.