52- دروس جافا سكربت – JS Set Methods

### مقدمة إلى مجموعة (Set) في JavaScript

في لغة JavaScript، تعتبر المجموعة (Set) نوعًا من بنى البيانات التي تُستخدم لتخزين القيم الفريدة. على عكس المصفوفات، لا تسمح المجموعات بتكرار العناصر، مما يجعلها مثالية لتخزين القيم المتميزة. دعونا نستعرض بعض الطرق (methods) الأساسية التي توفرها المجموعات في JavaScript مع توضيح شامل لكل منها.

### إنشاء مجموعة

قبل أن نتعمق في الطرق، لنلقِ نظرة على كيفية إنشاء مجموعة في JavaScript:

let mySet = new Set();

يمكن أيضًا تهيئة مجموعة مع عناصر مبدئية:

let numberSet = new Set([1, 2, 3, 4]);

### طرق مجموعة (Set) في JavaScript

#### 1. `add()`

تُستخدم طريقة `add` لإضافة عنصر جديد إلى المجموعة. إذا كان العنصر موجودًا بالفعل، فلن يتم إضافته مرة أخرى.

let fruits = new Set();
fruits.add('Apple');
fruits.add('Banana');
fruits.add('Apple'); // لن يُضاف مرة أخرى
console.log(fruits); // Set(2) { 'Apple', 'Banana' }

#### 2. `delete()`

تُستخدم طريقة `delete` لإزالة عنصر معين من المجموعة. تُعيد `true` إذا [شركة برمجة مصرية] كان العنصر موجودًا وتمت إزالته بنجاح، و`false` إذا لم يكن العنصر موجودًا.

let colors = new Set(['Red', 'Green', 'Blue']);
console.log(colors.delete('Green')); // true
console.log(colors); // Set(2) { 'Red', 'Blue' }

#### 3. `has()`

تُستخدم طريقة `has` للتحقق مما إذا كانت المجموعة تحتوي على عنصر معين. تُعيد `true` إذا كان العنصر موجودًا و`false` إذا لم يكن كذلك.

let animals = new Set(['Cat', 'Dog', 'Bird']);
console.log(animals.has('Dog')); // true
console.log(animals.has('Fish')); // false

#### 4. `clear()`

تُستخدم طريقة `clear` لإزالة جميع العناصر من المجموعة، وبذلك تصبح المجموعة فارغة.

let cities = new Set(['New York', 'Paris', 'Tokyo']);
cities.clear();
console.log(cities); // Set(0) {}

#### 5. `size`

الخاصية `size` تُعطي عدد العناصر في المجموعة. لاحظ أنها خاصية وليست طريقة، لذا لا تحتاج للاقواس.

let countries = new Set(['USA', 'Canada', 'Mexico']);
console.log(countries.size); // 3

#### 6. `forEach()`

تُستخدم طريقة `forEach` لتنفيذ دالة معينة لكل عنصر في المجموعة.

let numbers = new Set([10, 20, 30]);
numbers.forEach((value) => {
  console.log(value * 2);
});
// Output:
// 20
// 40
// 60

#### 7. `values()`

تُعيد طريقة `values` كائنًا من [شركة برمجة مصرية] النوع Iterator يحتوي على جميع القيم في المجموعة. يمكن استخدامه لتكرار العناصر باستخدام حلقة `for…of`.

let letters = new Set(['a', 'b', 'c']);
for (let letter of letters.values()) {
  console.log(letter);
}
// Output:
// a
// b
// c

#### 8. `entries()`

تُعيد طريقة `entries` كائنًا من النوع Iterator يحتوي على أزواج `[value, value]` لكل عنصر في المجموعة. يكون `value` مكررًا لأن المجموعات لا تحتوي على مفاتيح.

let items = new Set(['item1', 'item2']);
for (let [first, second] of items.entries()) {
  console.log(first, second);
}
// Output:
// item1 item1
// item2 item2

### الخلاصة

توفر مجموعة (Set) في JavaScript وسيلة قوية وفعالة لتخزين القيم الفريدة وإجراء العمليات عليها. بفضل الطرق المتعددة مثل `add`, `delete`, و`has`, يمكن للمطورين إدارة البيانات بفعالية وبساطة. باستخدام هذه الطرق، يمكنك التأكد من أن البيانات في مجموعتك نظيفة وخالية من التكرارات، مما يساعد على تحسين الأداء وتقليل الأخطاء المحتملة في التطبيقات.