🚀 دليلك الشامل لإتقان المصفوفات (Arrays) في TypeScript
بعد أن تعرفنا على أنواع البيانات الأساسية، حان الوقت لنتعلم كيف نخزن "مجموعة" من البيانات في مكان واحد بدلاً من تعريف متغير لكل قيمة. هنا يأتي دور المصفوفات (Arrays). 📦
❓ ما هي المصفوفة (Array)؟
تخيل أن لديك صندوقاً كبيراً، وبدلاً من وضع غرض واحد فقط فيه، يمكنك وضع قائمة من الأغراض المرتبة. المصفوفة في TypeScript هي ببساطة متغير واحد يمكنه تخزين عدة قيم من نفس النوع.
على سبيل المثال، بدلاً من تعريف ثلاثة متغيرات لأسماء الطلاب:
student1, student2, student3
يمكننا ببساطة إنشاء مصفوفة واحدة تسمى students تحتوي على جميع الأسماء. 🎓
🛠️ كيف نقوم بتعريف المصفوفات في TypeScript؟
هناك طريقتان أساسيتان لتعريف المصفوفات في TypeScript، وكلاهما يؤديان نفس الغرض تماماً:
الطريقة الأولى: استخدام الأقواس المربعة [] (وهي الأكثر شيوعاً)
في هذه الطريقة، نضع نوع البيانات أولاً ثم نتبعه بالأقواس المربعة.
مثال برمجى:
// Define an array of strings to store fruit names
let fruits: string[] = ["Apple", "Banana", "Orange"];
// Define an array of numbers to store student grades
let grades: number[] = [90, 85, 95, 70];
// Define an array of booleans
let attendance: boolean[] = [true, false, true, true];
الطريقة الثانية: استخدام الكلمة المفتاحية Array<Type> (Generic Array)
هذه الطريقة تعطي نفس النتيجة ولكن بأسلوب كتابة مختلف، وتسمى "Generic".
مثال برمجى:
// This is exactly the same as string[]
let colors: Array<string> = ["Red", "Green", "Blue"];
// This is exactly the same as number[]
let prices: Array<number> = [10.5, 20, 35.99];
⚠️ أهمية تحديد النوع في المصفوفات (Type Safety)
لماذا نحدد النوع مثل string[] بينما يمكننا في JavaScript كتابة let fruits = [] فقط؟ 🤔
السبب هو الأمان. عندما تخبر TypeScript أن هذه المصفوفة هي لـ "النصوص" فقط، فإن TypeScript ستمنعك من إضافة أي نوع آخر بالخطأ.
شاهد ماذا يحدث عند محاولة إضافة نوع خاطئ:
let usernames: string[] = ["Ahmed", "Sara"];
// ❌ This will cause a TypeScript error because 100 is a number, not a string
usernames.push(100);
بهذه الطريقة، يحميك TypeScript من الوقوع في أخطاء برمجية قد تكتشفها متأخراً أثناء تشغيل البرنامج. ✅
📝 التعامل مع المصفوفات (العمليات الأساسية)
بمجرد إنشاء المصفوفة، يمكنك التفاعل معها بسهولة. إليك أهم العمليات التي ستحتاجها:
1. الوصول إلى عنصر معين (Accessing Elements)
نستخدم "الفهرس" (Index) للوصول للعنصر، وتذكر دائماً أن العد في البرمجة يبدأ من الصفر (0).
let cars: string[] = ["Toyota", "Tesla", "BMW"];
// Access the first element (Index 0)
console.log(cars[0]); // Output: Toyota
// Access the second element (Index 1)
console.log(cars[1]); // Output: Tesla
2. إضافة عنصر جديد (Adding Elements)
نستخدم الدالة .push() لإضافة عنصر في نهاية المصفوفة.
let tasks: string[] = ["Study", "Eat"];
// Add a new task to the end of the list
tasks.push("Sleep");
console.log(tasks); // Output: ["Study", "Eat", "Sleep"]
3. معرفة طول المصفوفة (Array Length)
لمعرفة كم عدد العناصر الموجودة داخل المصفوفة، نستخدم الخاصية .length.
let numbers: number[] = [10, 20, 30, 40, 50];
console.log(numbers.length); // Output: 5
💡 ملخص سريع لما تعلمناه:
- المصفوفة هي حاوية تخزن عدة قيم من نفس النوع. 📦
- يمكن تعريفها باستخدام
type[]أوArray<type>. - تحديد النوع يمنع إضافة بيانات خاطئة للمصفوفة (Type Safety). 🛡️
- الوصول للعناصر يبدأ من الفهرس
0. - نستخدم
.push()للإضافة و.lengthلمعرفة الحجم.
⏭️ ماذا سنتعلم في الدرس القادم؟
الآن بعد أن تعلمت كيف تخزن مجموعة من البيانات من نوع واحد، قد تتساءل: "ماذا لو أردت إنشاء مصفوفة تحتوي على نصوص وأرقام معاً في نفس الوقت؟" 🧐
في الدرس القادم، سنتحدث عن "Tuples"، وهي مصفوفات خاصة تسمح لنا بتحديد أنواع مختلفة لعناصر محددة وبترتيب معين. نراك هناك! 👋
🎓 اختبر معلوماتك
التعليقات
شاركنا رأيك أو أسئلتك حول هذا المقال