لقد كنت أستخدم JS لفترة طويلة ، لكنني لم أتحد أبدًا في شكل صفيف JS. في بعض الأحيان ، استخدمها Simple String.Split (char). يستخدم المشروع الذي قمت به خلال هذه الفترة الكثير من المصفوفات. أعتقد أنني سيد JS وليس لدي أي فكرة عن كيفية البدء. أنا قاسي وسأتعلم ذلك! هيه. بعد التعلم ، أدركت أن وظيفة صفيف JS قوية للغاية ، وأقوى بكثير من VB و C#. دعونا نلقي نظرة عليه ببطء.
1. إنشاء المصفوفات
var arrayobj = new array () ؛ // إنشاء صفيف var arrayobj = صفيف جديد ([الحجم]) ؛ // إنشاء صفيف وحدد الطول ، لاحظ أنه ليس الحد الأعلى ، فهو الطول var arrayobj = صفيف جديد ([element0 [، element1 [، ... [، elementn]]]]) ؛ // إنشاء صفيف وتعيين قيمة
تجدر الإشارة إلى أنه على الرغم من أن الطريقة الثانية تنشئ صفيفًا يحدد الطول ، في الواقع ، يكون الصفيف أطول في جميع الحالات ، أي ، حتى لو تم تحديد الطول ، لا يزال من الممكن تخزين العنصر خارج الطول المحدد. ملاحظة: سوف يتغير الطول وفقًا لذلك.
2. الوصول إلى عناصر الصفيف
var testgetArrValue = arrayobj [1] ؛ // احصل على قيمة عنصر الصفيف
arrayobj [1] = "هذه قيمة جديدة" ؛ // تعيين قيمة جديدة لعنصر الصفيف
3. إضافة عناصر الصفيف
شفرة
arrayobj. ادفع ([item1 [item2 [. .. [itemn]]]) ؛ // إضافة عنصر أو أكثر من العناصر الجديدة إلى نهاية الصفيف وإرجاع الطول الجديد من Array ArrayObj.Unshift ([item1 [item1 [. arrayobj.splice (insertpos ، 0 ، [item1 [، item2 [،.
4. حذف عناصر الصفيف
arrayobj.pop () ؛ // قم بإزالة العنصر الأخير وإرجاع قيمة العنصر ArrayObj.shift () ؛ // قم بإزالة العنصر الأخير وإرجاع قيمة العنصر ، ستتحرك العناصر الموجودة في الصفيف تلقائيًا إلى الأمام arrayobj.splice (deletepos ، deletecount) ؛ .
5. اعتراض ودمج المصفوفات
arrayobj.slice (start ، [end]) ؛ // إرجاع جزء من المصفوفة في شكل صفيف ، لاحظ أن العناصر المقابلة للنهاية لم يتم تضمينها. إذا تم حذف النهاية ، فسيتم نسخ جميع العناصر بعد البدء
arrayobj.concat ([item1 [، item2 [،. // قم بتوصيل صفائف متعددة (يمكن أن تكون أيضًا سلاسل ، أو مزيج من المصفوفات والسلاسل) إلى صفيف ، وإرجاع المصفوفة الجديدة المتصلة
6. نسخة من المصفوفة
arrayobj.slice (0) ؛ // إرجاع مجموعة النسخ من المصفوفة ، لاحظ أنها مجموعة جديدة ، لا تشير إليها
arrayobj.concat () ؛ // إرجاع مجموعة النسخ من المصفوفة ، لاحظ أنها مجموعة جديدة ، لا تشير إليها
7. فرز عناصر الصفيف
arrayobj.reverse () ؛ // عكسي العنصر (يتم تصنيف الأول في المرتبة الأخيرة ، والآخر يتم تصنيفه أولاً) ، وإرجاع عنوان الصفيف
arrayobj.sort () ؛ // فرز عناصر صفيف وعنوان مجموعة الإرجاع
8. سلسلة عناصر الصفيف
arrayobj.join (فاصل) ؛ // إرجاع سلسلة ، تنضم إلى كل قيمة عنصر من الصفيف معًا ، مفصولة بفاصل.
tolocalestring ، tostring ، valueof: يمكن اعتباره استخدامًا خاصًا للانضمام ، ولا يتم استخدامه في كثير من الأحيان
2. ثلاث خصائص من كائن الصفيف
1. سمة الطول
تمثل سمة الطول طول الصفيف ، أي عدد العناصر الموجودة فيه. نظرًا لأن فهرس الصفيف يبدأ دائمًا من 0 ، فإن الحدود العلوية والسفلية للمصفوفة هي: 0 وطول 1 على التوالي. على عكس معظم اللغات الأخرى ، فإن خاصية طول صفائف JavaScript قابلة للتغيير ، مما يتطلب اهتمامًا خاصًا. عندما يتم تعيين سمة الطول لتكون أكبر ، لن تتغير حالة الصفيف بأكمله فعليًا ، فقط تصبح سمة الطول أكبر ؛ عندما يتم تعيين سمة الطول لتكون أصغر من الأصل ، يتم فقدان جميع قيم العناصر مع فهارس أكبر من أو تساوي الطول في الصفيف الأصلي. فيما يلي مثال يوضح تغيير سمة الطول:
شفرة
var arr = [12،23،5،3،25،98،76،54،56،76] ؛ // تحديد تنبيه صفيف (arr.length) ؛ // عرض طول الصفيف بمقدار 10 arr.length = 12 ؛ // زيادة طول تنبيه الصفيف (arr.length) ؛ // إظهار طول الصفيف قد أصبح 12 ARR (ARR [8]) ؛ // إظهار قيمة العنصر التاسع ، 56 arr.length = 5 ؛ // تقليل طول الصفيف إلى 5 ، والعناصر التي تحتوي على فهرس يساوي أو تجاوز 5 يتم تجاهلها (ARR [8]) ؛ // إظهار أن العنصر التاسع أصبح "غير محدد" arr.length = 10 ؛ // استعادة طول الصفيف إلى 10 ARR (ARR [8]) ؛ // على الرغم من أن الطول يتم استعادته إلى 10 ، إلا أنه لا يمكن سحب العنصر التاسع ، مما يدل على "غير محدد"
من الكود أعلاه ، يمكننا أن نرى بوضوح خصائص سمة الطول. ولكن لا يمكن تعيين كائن الطول بشكل صريح فحسب ، بل قد يتم تعديله أيضًا. يمكن استخدام متغير غير معلن في JavaScript. وبالمثل ، فإن عنصر صفيف غير محدد (في إشارة إلى عنصر يتجاوز فهرسه أو يساوي الطول). في هذا الوقت ، سيتم تعيين قيمة سمة الطول على قيمة فهرس العنصر المستخدم بالإضافة إلى 1. على سبيل المثال ، الرمز التالي:
var arr = [12،23،5،3،25،98،76،54،56،76] ؛ ALERT (ARR.LENGTH) ؛ ARR [15] = 34 ؛ ALERT (ARR.LENGTH) ؛
يحدد الرمز أولاً صفيفًا يحتوي على 10 أرقام. من خلال بيان التنبيه ، يمكن ملاحظة أن طوله هو 10. ثم يتم استخدام عنصر مع فهرس 15 ، والقيمة 15 ، أي ARR [15] = 34. في هذا الوقت ، يتم إخراج طول الصفيف باستخدام بيان التنبيه ، والنتيجة هي 16. على أي حال ، هذه ميزة مفاجئة للمطورين الذين اعتادوا على البرمجة المكتوبة بقوة. في الواقع ، فإن الصفيف الذي تم إنشاؤه باستخدام شكل صفيف جديد () له طول أولي قدره 0. إنه تشغيل العناصر غير المحددة التي تغير طول الصفيف.
من المقدمة أعلاه ، يمكننا أن نرى أن سمة الطول سحرية لدرجة أنه يمكن أن تزيد بسهولة أو تقليل قدرة الصفيف. لذلك ، سيساعد الفهم المتعمق لسمة الطول على تطبيقه بمرونة أثناء عملية التطوير.
2. سمات النموذج الأولي
إرجاع مرجع إلى النموذج الأولي للكائن. تتم مشاركة سمة النموذج الأولي بواسطة كائن.
ObjectName.prototype
المعلمة ObjectName هي اسم كائن الكائن.
يوضح:
استخدم سمة النموذج الأولي لتوفير مجموعة من الوظائف الأساسية لفئة الكائن. مثيل جديد لكائن "يرث" العملية التي تعطي النموذج الأولي للكائن.
بالنسبة لكائنات الصفيف ، استخدم المثال التالي لتوضيح الغرض من سمة النموذج الأولي.
أضف طريقة إلى كائن المصفوفة لإرجاع قيمة العنصر القصوى في الصفيف. لإنجاز هذا ، أعلن وظيفة ، وإضافتها إلى Array.prototype ، واستخدامها.
شفرة
وظيفة Array_max () {var i ، max = this [0] ؛ for (i = 1 ؛ i <this.length ؛ i ++) {if (max <this [i]) max = this [i] ؛} return max ؛} array.prototype.max = array_max ؛ var x = new arm (1 ، 2 ، 3 ، 4 ، 4 ، 6) ؛بعد تنفيذ هذا الرمز ، يحفظ Y القيمة القصوى في المصفوفة X ، أو 6.
3. سمة مُنشئ
وظيفة تمثل إنشاء كائن.
Object.constructor // الكائن هو اسم كائن أو دالة.
الوصف: خاصية المنشئ هي عضو في جميع الكائنات ذات النموذج الأولي. وهي تشمل جميع الكائنات المصممة JScript باستثناء الكائنات العالمية والرياضيات. تحتوي خاصية المنشئ على إشارة إلى دالة تقوم بإنشاء مثيل كائن معين.
على سبيل المثال:
x = سلسلة جديدة ("مرحبا") ؛
if (x.constructor == string) // العملية (الشرط صحيح).
أو
وظيفة myfunc {
// وظيفة الجسم.
}
y = جديد myfunc ؛
إذا (y.constructor == myfunc) // العملية (الشرط صحيح).
للمصفوفات:
y = صفيف جديد () ؛