في لغات البرمجة ، تعد المصفوفات (الصفيف) وظيفة شائعة جدًا ؛ إنها متغير خاص يمكن استخدامه لتخزين قيم رقمية متعددة في نفس الوقت. ومع ذلك ، عندما يتعلق الأمر بـ JavaScript ، هناك أشياء أخرى كثيرة لاستكشافها.
في هذه المقالة ، سنناقش ثلاث ميزات أقل شيوعًا لمصفوفات JavaScript.
1. أضف خصائص مخصصة إلى الصفيف
عند البحث عن تعريفات حول صفائف JavaScript عبر الإنترنت ، ستجد أن كل شخص تقريبًا لديه نفس تعريف المصفوفات: كائن.
في الواقع ، يمكن اعتبار كل ما نعالجه مع JavaScript كائنًا. هناك نوعان من البيانات في JavaScript ، والنوع الأساسي هو نوع الكائن ، ولكن يتم تضمين النوع الأساسي بشكل أساسي في نوع الكائن.
تعد المصفوفات والوظائف والتاريخ كائنات محددة مسبقًا في JavaScript ، وكلها تحتوي على طرق وخصائص وبناء جملة موحدة.
صفائف JavaScript لها الخصائص الثلاثة المختلفة التالية:
1) فهرس الصفيف هو أيضا سمة
2) خصائص مدمجة
3) يمكنك إضافة خصائص مخصصة بنفسك
أول سمتين معروفين للجميع. يمكنك استخدامها كل يوم ، لكنني ما زلت أريد أن أقول بضع كلمات أخرى هنا ، ثم دعونا نتحدث عن كيفية إضافة سمات مخصصة إلى المصفوفات.
خذ الفهرس كخاصية
يمكن لصفائف JavaScript استخدام بناء جملة قوس مربع ، مثل var ary = ["Orange" ، "Apple" ، "Lychee"] ؛.
فهرس عنصر المصفوفة هو في الأساس خاصية ، وأسماء خصائصه دائمًا غير سالبة.
يشبه زوج عنصر الفهرس من صفيف زوج القيمة الرئيسية للكائن. الفهارس هي ميزات فريدة لكائنات الصفيف ، على عكس الخصائص المدمجة الأخرى ، والتي يمكن تكوينها بشكل فردي من خلال قوسين مربعة ، مثل ARY [3] = "Peach" ؛.
خصائص مدمجة
تحتوي المصفوفات على خصائص مدمجة مثل Array.Length. تحتوي خاصية الطول هذه على قيمة عدد صحيح تمثل طول الصفيف.
بشكل عام ، يمكن العثور على خصائص مدمجة في غالبًا في كائنات JavaScript المحددة مسبقًا مثل المصفوفات. يتم الجمع بين الخصائص المدمجة مع طرق مدمجة ، والتي يمكن تخصيص كائنات عادية لتلبية الاحتياجات المختلفة.
عند الوصول إلى الخصائص المدمجة ، يمكنك استخدام بناء الجملة: Object.Key أو Object ["KEY"]. هذا هو ، عندما تحصل على طول الصفيف ، يمكنك كتابتها على أنها آري ["الطول"].
إنشاء خصائص مخصصة لكائنات الصفيف
الآن دعنا نتحدث عن كيفية إضافة خصائص مخصصة إلى صفيف. الصفيف هو كائن محدد مسبقًا يخزن أنواعًا مختلفة من القيم في فهارس مختلفة.
عادة ، لا نحتاج إلى إضافة سمات مخصصة إلى المصفوفات ؛ لهذا السبب ، عندما تعلمنا جافا سكريبت لأول مرة ، لم يخبرنا أحد أنه يمكننا إضافة سمات إلى المصفوفات. في الواقع ، إذا كنت ترغب في إضافة أزواج القيمة الرئيسية إلى الصفيف مثل تعامل مع كائن عام ، فيمكنك أيضًا استخدام كائن عام لتحقيق هدفك. ومع ذلك ، لا يعني هذا أنه لا توجد حالات خاصة على الإطلاق ، في بعض الحالات ، يمكنك الاستفادة من حقيقة أن الصفيف هو أيضًا كائن وإضافة واحدة أو أكثر من الخصائص المخصصة إليها.
على سبيل المثال ، يمكنك إضافة خاصية مخصصة إلى الصفيف الذي يتعرف على العنصر "نوع" أو "فئة". للحصول على تفاصيل ، يرجى الرجوع إلى المثال أدناه:
var ary = ["Orange" ، "Apple" ، "lychee"] ؛ ary.itemClass = "Fruits" ؛
يرجى ملاحظة أن الخصائص المخصصة التي تضيفها إلى الصفيف قابلة للعد ، أي يمكن اختيارها بواسطة حلقات مثل ... في.
2. حلقة في عناصر الصفيف
قد تقول ، "لقد عرفت هذا لفترة طويلة." هذا صحيح ، أنت تعرف بالفعل كيفية فهرسة عناصر الصفيف. ولكن قد تشعر أن بيان "الحلقات في عناصر الصفيف" مجردة بعض الشيء لأن ما نقوم به حقًا هو فهرس المصفوفة.
نظرًا لأن فهارس الصفيف تتكون جميعها من أعداد صحيحة غير سالبة ، فإننا عادة ما نبدأ من 0 حتى طول كامل الصفيف للتكرار على قيمة عدد صحيح ، ثم نستخدم هذه القيمة المتكررة للحصول على عنصر الصفيف وفقًا للفهرس المحدد.
ومع ذلك ، نظرًا لأن ECMASCript6 يظهر ، لم يعد بإمكاننا الاهتمام بالفهارس والحلقة مباشرة في قيم الصفيف ، ويمكن القيام بهذه العملية باستخدام ... من الحلقة.
في صفيف ، يمكن لـ ... من الحلقة حلقة عناصر الصفيف وفقًا لترتيب الفهرس. بمعنى آخر ، يمكنه التحكم في تكرار الفهرس والحصول على قيمة صفيف موجودة بناءً على الفهرس المحدد. هذه الحلقة عملية للغاية إذا كنت ترغب فقط في حلقة جميع عناصر الصفيف واستخدامها.
var ary = ["Orange" ، "Apple" ، "lychee"] ؛ لـ (دع عنصر ary) {console.log (item) ؛} للمقارنة ، مع العادية للحلقة ، نحصل على المؤشرات بدلاً من القيم كإخراج. var ary = ["Orange" ، "Apple" ، "lychee"] ؛ for (var item = 0 ؛ item <ary.length ؛ item ++) {console.log (item) ؛}3. عدد العناصر لا يساوي طولها
بشكل عام ، عندما نتحدث عن طول الصفيف ، نعتقد أن طوله هو إما عدد قيم الصفيف أو الطول الذي حددناه للمصفوفة يدويًا. ولكن في الواقع ، يعتمد طول الصفيف على أكبر فهرس موجود بداخله.
الطول خاصية مرنة للغاية. سواء كنت قد قمت بتعديل طول الصفيف أم لا ، طالما استمرت في إضافة قيم جديدة إلى الصفيف ، سيزداد طوله أيضًا.
var ary = [] ؛ ary.length = 3 ؛ console.log (ary.length) ؛ ary [5] = "abcd" ؛ console.log (ary.length) ؛
في المثال أعلاه ، يمكنك أن ترى أنني حددت قيمة واحدة فقط إلى الفهرس 5 من المصفوفة ، ثم أصبح الطول 6. الآن ، إذا كنت تعتقد أنك تضيف قيمة إلى الفهرس 5 وسيقوم المصفوفة تلقائيًا بإنشاء الفهرس 0-4 ، فسيكون تكهناتك خاطئًا. لا يوجد فهرس 0-4 الذي يجب أن يكون موجود في الصفيف. يمكنك استخدام المشغل في مشاهدته.
var ary = [] ؛ ary.length = 3 ؛ console.log (ary.length) ؛ ary [5] = "abcd" ؛ console.log (ary.length) ؛ console.log (0 in ary) ؛
صفيف آري أعلاه مصنوع في صفيف متناثر من قبلنا. لن يتم إنشاء فهرس هذه الصفيف بشكل مستمر ، وهناك هواء بين الفهارس. عكس المصفوفة المتفرقة هي صفيف كثيف. يتم إنشاء مؤشر المصفوفات الكثيفة بشكل مستمر ، مع عدد العناصر التي تساوي طولها.
يمكن أيضًا استخدام خاصية طول الصفيف لتقصير الأرقام ، مما يضمن أن يكون الحد الأقصى لعدد الفهارس في الصفيف أصغر دائمًا من الصفيف نفسه ، لأنه بشكل افتراضي ، ستكون قيمة الطول دائمًا أكبر من أكبر عدد من الفهارس.
في المثال أدناه ، يمكنك أن ترى أنني استخدمت الطريق لتقليل طول صفيف ARY إلى المجتمع العناصر في الفهرس 5.
var ary = [] ؛ ary.length = 3 ؛ console.log (ary.length) ؛ ary [5] = "abcd" ؛ console.log (ary.length) ؛ ary.length = 2 ؛ console.log (ary.length) ؛ console.log (ary [5]) ؛
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.