إنشاء مصفوفات بطول محدد مهمة شائعة في جافا سكريبت. وبالرغم من أن مصفوفات جافا سكريبت ديناميكية، إلا أن تهيئتها بحجم محدد مسبقاً يمكن أن يحسن من قابلية قراءة الكود، وفي بعض الحالات، الأداء. تتناول هذه المقالة تقنيات فعالة لتحقيق ذلك.
جدول المحتويات
- إنشاء مصفوفات باستخدام مُنشئ
Array()
- ملء المصفوفات باستخدام
fill()
- إنشاء مصفوفات باستخدام
map()
- مقارنة الطرق
إنشاء مصفوفات باستخدام مُنشئ Array()
أبسط طريقة تستخدم مُنشئ Array()
. إن توفير وسيطة عددية واحدة يُنشئ مصفوفة بهذا الطول، مملوءة في البداية بقيم undefined
:
const arrayLength = 5;
const myArray = new Array(arrayLength);
console.log(myArray); // الإخراج: [ , , , , ] (أو [ ] اعتمادًا على وحدة تحكم المتصفح)
console.log(myArray.length); // الإخراج: 5
هذه الطريقة فعالة لإنشاء مصفوفات حيث لا تكون القيم الأولية أساسية. لاحظ أن التمثيل المرئي في وحدة التحكم قد يختلف.
ملء المصفوفات باستخدام fill()
بالنسبة للمصفوفات المُهيأة بقيمة محددة، فإن طريقة fill()
فعالة للغاية وقابلة للقراءة:
const arrayLength = 5;
const defaultValue = 0;
const myArray = new Array(arrayLength).fill(defaultValue);
console.log(myArray); // الإخراج: [0, 0, 0, 0, 0]
console.log(myArray.length); // الإخراج: 5
تقوم fill()
بملء المصفوفة مباشرة، مما يجعلها الخيار المفضل لهذا السيناريو الشائع.
إنشاء مصفوفات باستخدام map()
إذا كنت بحاجة إلى إنشاء قيم ديناميكيًا، فإن طريقة map()
توفر المرونة. بالتزامن مع مُنشئ Array()
، يمكنك إنشاء مصفوفة وملؤها في خطوة واحدة:
const arrayLength = 5;
const myArray = Array(arrayLength).fill().map((_, index) => index * 2); //لاحظ استخدام fill() هنا لإنشاء المصفوفة
console.log(myArray); // الإخراج: [0, 2, 4, 6, 8]
console.log(myArray.length); // الإخراج: 5
يُنشئ هذا المثال قيمًا بناءً على الفهرس، ولكن map()
يمكنها التعامل مع أي منطق لإنشاء محتويات المصفوفة المطلوبة.
مقارنة الطرق
بينما تم اقتراح طريقة apply()
سابقًا، فإن fill()
توفر بشكل عام قابلية قراءة وأداء أفضل لتهيئة المصفوفات بقيمة واحدة. يبقى مُنشئ Array()
مفيدًا لإنشاء مصفوفات فارغة بطول محدد. تُبرز map()
عندما تحتاج إلى إنشاء قيمة ديناميكي.
اختر الطريقة التي تناسب احتياجاتك بشكل أفضل. لتهيئة بسيطة بقيمة ثابتة، فإن fill()
هو النهج الموصى به.