# شرح مفصل لـ JS Sets في لغة JavaScript
تعتبر الـ Sets في JavaScript نوع من أنواع هياكل البيانات التي توفر طريقة فعّالة لتخزين القيم الفريدة. على عكس المصفوفات، لا تسمح الـ Sets بتكرار العناصر، مما يجعلها مثالية لحالات الاستخدام التي تتطلب تجميع البيانات بدون تكرار.
## إنشاء Set
يمكنك إنشاء Set باستخدام الكلمة المفتاحية `Set` والتمرير بمصفوفة كقيمة ابتدائية إذا [شركة برمجة مصرية] دعت الحاجة:
// إنشاء Set فارغ
let mySet = new Set();
// إنشاء Set مع تمرير قيم ابتدائية
let numberSet = new Set([1, 2, 3, 4, 5]);
console.log(numberSet); // Set(5) { 1, 2, 3, 4, 5 }
## إضافة وحذف العناصر
يمكنك استخدام الدالة `add` لإضافة عناصر جديدة إلى الـ Set، والدالة `delete` لحذف عناصر:
let fruitSet = new Set();
// إضافة عناصر
fruitSet.add('Apple');
fruitSet.add('Banana');
fruitSet.add('Orange');
fruitSet.add('Apple'); // لن يتم إضافته مرة أخرى لأنه مكرر
console.log(fruitSet); // Set(3) { 'Apple', 'Banana', 'Orange' }
// حذف عنصر
fruitSet.delete('Banana');
console.log(fruitSet); // Set(2) { 'Apple', 'Orange' }
## التحقق من وجود عنصر
يمكنك التحقق مما إذا كان عنصر معين موجودًا في الـ Set باستخدام الدالة `has`:
console.log(fruitSet.has('Apple')); // true
console.log(fruitSet.has('Banana')); // false
## حجم الـ Set
يمكنك الحصول على عدد العناصر الموجودة في الـ Set باستخدام الخاصية `size`:
console.log(fruitSet.size); // 2
## مسح الـ Set
لإزالة جميع العناصر من الـ Set، يمكنك استخدام الدالة `clear`:
fruitSet.clear();
console.log(fruitSet); // Set(0) {}
## التكرار عبر عناصر الـ Set
يمكنك التكرار عبر عناصر الـ Set باستخدام حلقة `for…of` أو باستخدام الدالة `forEach`:
let colorSet = new Set(['Red', 'Green', 'Blue']);
// باستخدام for...of
for (let color of colorSet) {
console.log(color);
}
// باستخدام forEach
colorSet.forEach((color) => console.log(color));
## تحويل Set إلى مصفوفة
يمكنك تحويل Set إلى مصفوفة باستخدام الدالة `Array.from` أو باستخدام معامل الانتشار `…`:
let numberSet = new Set([10, 20, 30, 40, 50]);
// باستخدام Array.from
let numberArray = Array.from(numberSet);
console.log(numberArray); // [10, 20, 30, 40, 50]
// باستخدام معامل الانتشار
let anotherNumberArray = [...numberSet];
console.log(anotherNumberArray); // [10, 20, 30, 40, 50]
## الاستخدامات العملية لـ Sets
– **إزالة التكرارات من المصفوفات**: يمكن استخدامها لإزالة القيم المكررة بسهولة من المصفوفات.
let duplicateArray = [1, 2, 2, 3, 4, 4, 5];
let uniqueArray = [...new Set(duplicateArray)];
console.log(uniqueArray); // [1, 2, 3, 4, 5]
– **البحث السريع**: بفضل استخدام الـ Hashing، تتميز Sets بقدرتها على البحث السريع مقارنة بالمصفوفات.
– **إدارة البيانات الفريدة**: مثالية لحالات الاستخدام التي تتطلب بيانات فريدة مثل تخزين المستخدمين أو العناصر في سلة التسوق.
باختصار، توفر JS Sets طريقة مرنة وفعّالة لإدارة البيانات الفريدة في JavaScript. من خلال عمليات الإضافة والحذف والتحقق الفعّالة، يمكنك تحسين أداء [شركة برمجة مصرية] التطبيق الخاص بك وتبسيط إدارة البيانات.
