التحقق من فراغ مصفوفة JavaScript: دليل شامل باستخدام .length و Array.isArray()
مقدمة: لماذا نحتاج للتحقق من فراغ المصفوفات في JavaScript؟
في عالم تطوير الويب باستخدام JavaScript، تُعد المصفوفات (Arrays) من أهم هياكل البيانات وأكثرها استخدامًا. غالبًا ما تحتاج أثناء كتابة الكود إلى التأكد مما إذا كانت المصفوفة تحتوي على عناصر أم أنها فارغة تمامًا. هذه الحاجة تنشأ في سيناريوهات متعددة، مثل معالجة البيانات القادمة من واجهات برمجية (APIs)، أو التحقق من إدخالات المستخدم، أو حتى التحكم في تدفق التطبيق بناءً على وجود بيانات معينة. لحسن الحظ، توفر JavaScript طرقًا بسيطة وفعالة للقيام بذلك، وأبرزها استخدام الخاصية .length.
فهم الخاصية .length في JavaScript
تُعد الخاصية .length أداة أساسية في JavaScript، حيث تُستخدم لتحديد عدد العناصر الموجودة داخل المصفوفة. تُرجع هذه الخاصية قيمة عددية تمثل حجم المصفوفة. إذا كانت المصفوفة فارغة، فستُرجع 0. تُمكننا هذه الخاصية من معرفة ما إذا كانت المصفوفة تحتوي على بيانات أم لا، مما يجعلها نقطة الانطلاق الرئيسية للتحقق من فراغ المصفوفات.
مثال توضيحي للخاصية .length
لنبدأ بمثال بسيط يوضح كيفية عمل الخاصية .length مع مصفوفة تحتوي على عناصر:
const myArray = ['Horses', 'Dogs', 'Cats'];
هنا، قمنا بإنشاء متغير myArray يشير إلى مصفوفة تحتوي على ثلاثة عناصر. عند استخدام الخاصية .length مع هذه المصفوفة، سنحصل على عدد العناصر الموجودة بداخلها:
myArray.length; // تُرجع 3
كما نرى، تُرجع myArray.length القيمة 3، لأن المصفوفة تحتوي على ثلاثة عناصر. الآن، دعنا نستكشف كيف يمكننا استخدام هذه الخاصية للتحقق من فراغ المصفوفات.
طرق التحقق من فراغ المصفوفة باستخدام .length
يمكننا التحقق مما إذا كانت المصفوفة فارغة أم لا باستخدام الخاصية .length بعدة طرق، كل منها يوفر أسلوبًا مختلفًا ولكن يؤدي إلى نفس النتيجة.
1. التحقق المباشر من القيمة الصفرية
الطريقة الأكثر وضوحًا هي إنشاء مصفوفة فارغة ثم التحقق مباشرة من قيمة .length.
const arr = [];
الآن، إذا قمنا بالتحقق من طول هذه المصفوفة:
arr.length; // تُرجع 0
ستُرجع 0، مما يشير بوضوح إلى أن المصفوفة فارغة.
2. استخدام الشرط if (arr.length === 0)
يمكننا استخدام عبارة شرطية if للتحقق بشكل صريح مما إذا كانت قيمة .length تساوي صفرًا. هذه الطريقة واضحة جدًا ومقروءة:
if (arr.length === 0) {
console.log("Array is empty!");
}
إذا كانت المصفوفة arr فارغة، فسيتم طباعة الرسالة “Array is empty!” في وحدة التحكم. أما إذا كانت تحتوي على عناصر، فلن يتم تنفيذ الكود داخل كتلة if.
3. الاستفادة من عامل النفي المنطقي (!)
تُقدم JavaScript طريقة أكثر إيجازًا للتحقق من فراغ المصفوفة باستخدام عامل النفي المنطقي (!). يقوم هذا العامل بعكس قيمة التعبير الذي يليه. في JavaScript، تُعتبر القيمة 0 (صفر) قيمة “مُزيفة” (falsy)، بينما تُعتبر أي قيمة عددية أخرى (مثل 1، 2، 3) قيمًا “حقيقية” (truthy).
لذا، إذا كانت arr.length تُرجع 0 (مُزيفة)، فإن !arr.length ستُرجع true. وهذا يعني أننا يمكننا استخدامها للتحقق من فراغ المصفوفة.
لنجرب هذا في وحدة تحكم المتصفح (يمكنك فتحها بالضغط على Inspect -> Console في Chrome):

الآن، لنستخدم عامل النفي المنطقي ! مع الخاصية .length:

كما يتضح، إذا لم نستخدم عامل النفي، لكانت arr.length قد أعادت 0. ولكن مع إضافة العامل !، فإنها تُرجع true لأن 0 تُعتبر قيمة مُزيفة. يمكننا دمج هذا مع عبارة if:

أفضل الممارسات: التحقق من نوع البيانات باستخدام Array.isArray()
عند التحقق من فراغ مصفوفة، من المهم جدًا أن تتحقق أيضًا مما إذا كان المتغير الذي تتعامل معه هو مصفوفة بالفعل. لماذا؟ لأن الخاصية .length لا تقتصر على المصفوفات فقط؛ يمكن استخدامها مع أنواع بيانات أخرى مثل السلاسل النصية (strings). إذا كنت تتوقع مصفوفة ولكنك تلقيت سلسلة نصية، فإن استخدام .length وحده قد يؤدي إلى نتائج مضللة أو أخطاء غير متوقعة في منطق تطبيقك.

لضمان دقة الكود وتجنب الأخطاء المحتملة، يُنصح بشدة باستخدام الدالة Array.isArray(). تُحدد هذه الدالة ما إذا كانت القيمة المُمررة إليها هي مصفوفة أم لا. إذا كانت القيمة مصفوفة، فإنها تُرجع true؛ وإلا، تُرجع false.
كيفية استخدام الدالة Array.isArray()
يمكننا دمج Array.isArray() مع التحقق من .length لإنشاء تحقق قوي وموثوق:
const myVariable = []; // أو قد تكون 'hello' أو null
if (Array.isArray(myVariable) && myVariable.length === 0) {
console.log("المتغير هو مصفوفة فارغة.");
} else if (Array.isArray(myVariable) && myVariable.length > 0) {
console.log("المتغير هو مصفوفة تحتوي على عناصر.");
} else {
console.log("المتغير ليس مصفوفة.");
}
هذا النهج يضمن أنك لا تتحقق فقط من عدد العناصر، بل تتأكد أيضًا من أنك تتعامل مع النوع الصحيح من البيانات. إليك مثال آخر يوضح استخدام Array.isArray() في وحدة التحكم:

الخلاصة التقنية
في هذا المقال، استعرضنا الطرق المختلفة للتحقق مما إذا كانت مصفوفة JavaScript فارغة أم لا، مع التركيز على الخاصية .length. تعلمنا أن .length تُرجع عدد العناصر في المصفوفة، وأن القيمة 0 تشير إلى مصفوفة فارغة. كما تناولنا ثلاث طرق رئيسية للتحقق: التحقق المباشر من القيمة الصفرية، استخدام الشرط if (arr.length === 0)، والاستفادة من عامل النفي المنطقي ! لأسلوب أكثر إيجازًا.
الأهم من ذلك، سلطنا الضوء على أفضل الممارسات من خلال دمج الدالة Array.isArray(). هذه الدالة حاسمة لضمان أن المتغير الذي نتعامل معه هو مصفوفة بالفعل، مما يمنع الأخطاء المحتملة عند استخدام .length مع أنواع بيانات أخرى. إن الجمع بين Array.isArray() و .length يوفر حلاً قويًا وموثوقًا للتعامل مع المصفوفات في JavaScript، مما يساهم في كتابة كود أكثر متانة وفعالية.