Set Methods

در JavaScript، آبجکت Set یک مجموعه از مقادیر یکتا (Unique values) رو نگهداری می‌کنه.
برای کار با این مقادیر، متدها و ویژگی‌های مختلفی وجود دارن که باید باهاشون آشنا بشیم.

🔹 متدهای اصلی

1️⃣ add(value)

یک مقدار جدید به Set اضافه می‌کنه (اگر وجود نداشته باشه).

const set = new Set(); set.add("apple"); set.add("banana"); set.add("apple"); // نادیده گرفته میشه چون تکراریه console.log(set); // Set(2) {"apple", "banana"}

2️⃣ delete(value)

یک مقدار مشخص رو از Set حذف می‌کنه.

set.delete("banana"); console.log(set); // Set(1) {"apple"}

3️⃣ has(value)

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

console.log(set.has("apple")); // true console.log(set.has("banana")); // false

4️⃣ ()clear

تمام مقادیر رو از Set حذف می‌کنه (خالی میشه).

set.clear(); console.log(set); // Set(0) {}

5️⃣ size (ویژگی)

تعداد عناصر موجود در Set رو برمی‌گردونه.

const nums = new Set([1, 2, 3, 4]); console.log(nums.size); // 4

🔹 متدهای پیمایش (Iteration Methods)

6️⃣ ()keys

مقادیر موجود رو مثل کلیدها در Map برمی‌گردونه (در واقع همون مقادیر).

console.log([...nums.keys()]); // [1, 2, 3, 4]

7️⃣ ()values

مقادیر رو برمی‌گردونه (همون خروجی keys).

console.log([...nums.values()]); // [1, 2, 3, 4]

8️⃣ ()entries

هر مقدار رو به صورت [value, value] برمی‌گردونه (برای سازگاری با Map).

console.log([...nums.entries()]); // [[1, 1], [2, 2], [3, 3], [4, 4]]

9️⃣ forEach(callback)

مثل آرایه می‌شه روی عناصر Set حلقه زد.

nums.forEach((value) => { console.log("🔹", value); }); // 🔹 1 // 🔹 2 // 🔹 3 // 🔹 4

🔹 مثال کاربردی: حذف عناصر تکراری با Set

const numbersArray = [1, 2, 2, 3, 4, 4, 5]; const uniqueNumbers = [...new Set(numbersArray)]; console.log(uniqueNumbers); // [1, 2, 3, 4, 5]

🎯 تمرین عملی (مرور تمام متدها)

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>JavaScript Set Methods</title> </head> <body> <h2>JavaScript Set Methods</h2> <pre id="output"></pre> <script> const output = document.getElementById("output"); const mySet = new Set([1, 2, 3]); // add mySet.add(4); output.innerText += "add(4): " + JSON.stringify([...mySet]) + "\n"; // delete mySet.delete(2); output.innerText += "delete(2): " + JSON.stringify([...mySet]) + "\n"; // has output.innerText += "has(3): " + mySet.has(3) + "\n"; // size output.innerText += "size: " + mySet.size + "\n"; // keys output.innerText += "keys(): " + JSON.stringify([...mySet.keys()]) + "\n"; // values output.innerText += "values(): " + JSON.stringify([...mySet.values()]) + "\n"; // entries output.innerText += "entries(): " + JSON.stringify([...mySet.entries()]) + "\n"; // forEach output.innerText += "forEach: "; mySet.forEach((v) => { output.innerText += v + " "; }); </script> </body> </html>

📌 نتیجه‌گیری

  • Set فقط مقادیر یکتا رو ذخیره می‌کنه.

  • متدهای مهم:

    • add() → افزودن مقدار

    • delete() → حذف مقدار

    • has() → بررسی وجود

    • clear() → پاک کردن همه

    • size → تعداد عناصر

  • روش‌های پیمایش: keys(), values(), entries(), forEach()