مقدمة إلى الـ Sets في جافا سكريبت: دليلك الشامل للمبتدئين 🚀
مرحباً بك في عالم هياكل البيانات في جافا سكريبت! اليوم سنتعرف على واحد من أكثر الهياكل فائدة وإثارة للاهتمام: Set. إذا كنت تتعامل مع قوائم من البيانات وتريد التأكد من عدم وجود تكرار فيها، فإن Set هو الحل الأمثل لك.
ما هو الـ Set؟ 🤔
ببساطة شديدة، Set هو كائن في جافا سكريبت يسمح لك بتخزين مجموعة من القيم الفريدة من أي نوع. كلمة "فريدة" هنا هي المفتاح! هذا يعني أن كل قيمة يمكن أن تظهر مرة واحدة فقط داخل الـ Set.
الميزة الرئيسية: لا يسمح الـ Set بتكرار القيم. إذا حاولت إضافة قيمة موجودة بالفعل، فلن يضيفها مرة أخرى.
// إنشاء Set جديد
let myFirstSet = new Set();
// إضافة بعض القيم
myFirstSet.add("apple");
myFirstSet.add("banana");
myFirstSet.add("apple"); // هذه لن تُضاف لأن "apple" موجودة مسبقاً
console.log(myFirstSet);
// الناتج: Set(2) { 'apple', 'banana' }
// لاحظ أن "apple" ظهرت مرة واحدة فقط!
كيفية إنشاء Set جديد
هناك طريقتان رئيسيتان لإنشاء Set:
1. إنشاء Set فارغ:
let emptySet = new Set();
console.log(emptySet); // الناتج: Set(0) {}
2. إنشاء Set من مصفوفة (Array):
let numbers = [1, 2, 2, 3, 4, 4, 5];
let uniqueNumbers = new Set(numbers);
console.log(uniqueNumbers);
// الناتج: Set(5) { 1, 2, 3, 4, 5 }
// لاحظ أن الأرقام المكررة تم إزالتها تلقائياً!
الخصائص والطرق الأساسية للـ Set
الخاصية size 📏
تخبرك بعدد العناصر الفريدة في الـ Set.
let fruitSet = new Set(["apple", "orange", "banana"]);
console.log(fruitSet.size); // الناتج: 3
الطريقة add() ➕
تستخدم لإضافة عنصر جديد إلى الـ Set. إذا كان العنصر موجوداً بالفعل، فلن يحدث شيء.
let colors = new Set();
colors.add("red");
colors.add("blue");
colors.add("green");
colors.add("red"); // لن تتم إضافتها مرة أخرى
console.log(colors); // الناتج: Set(3) { 'red', 'blue', 'green' }
الطريقة has() 🔍
تتحقق مما إذا كان عنصر معين موجوداً في الـ Set. ترجع true إذا كان العنصر موجوداً، وfalse إذا لم يكن.
let animals = new Set(["cat", "dog", "bird"]);
console.log(animals.has("cat")); // الناتج: true
console.log(animals.has("fish")); // الناتج: false
الطريقة delete() 🗑️
تزيل عنصراً محدداً من الـ Set. ترجع true إذا تم الحذف بنجاح، وfalse إذا لم يكن العنصر موجوداً.
let languages = new Set(["Arabic", "English", "French"]);
console.log(languages.delete("English")); // الناتج: true
console.log(languages.delete("Spanish")); // الناتج: false (لأنها غير موجودة)
console.log(languages); // الناتج: Set(2) { 'Arabic', 'French' }
الطريقة clear() 🧹
تزيل جميع العناصر من الـ Set دفعة واحدة.
let tempSet = new Set([1, 2, 3]);
console.log(tempSet.size); // الناتج: 3
tempSet.clear();
console.log(tempSet.size); // الناتج: 0
لماذا نستخدم الـ Set؟ 💡
- إزالة التكرار تلقائياً: أفضل طريقة للحصول على قائمة بالقيم الفريدة فقط.
- التحقق من الوجود بسرعة: طريقة سريعة للتحقق مما إذا كانت قيمة معينة موجودة.
- أداء أفضل في بعض العمليات: عمليات مثل التحقق من الوجود (
has) أسرع في Set مقارنة بالمصفوفات في كثير من الحالات.
مثال عملي بسيط: قائمة أصدقاء فريدة
لنطبق ما تعلمناه في مثال واقعي:
// لدينا قائمة أصدقاء قد تحتوي على أسماء مكررة
let friendList = ["Ahmed", "Sara", "Mohamed", "Ahmed", "Fatima", "Sara"];
// نستخدم Set لإنشاء قائمة فريدة من الأسماء
let uniqueFriends = new Set(friendList);
console.log("عدد الأصدقاء الفريدين:", uniqueFriends.size); // الناتج: 4
console.log("هل أحمد موجود في القائمة؟", uniqueFriends.has("Ahmed")); // الناتج: true
// إضافة صديق جديد
uniqueFriends.add("Khalid");
console.log(uniqueFriends); // الناتج: Set(5) { 'Ahmed', 'Sara', 'Mohamed', 'Fatima', 'Khalid' }
🎓 اختبر نفسك
التعليقات
شاركنا رأيك أو أسئلتك حول هذا المقال