نوع المصفوفة هو النوع المرجعي الأكثر استخدامًا في ECMASCRIPT. تختلف البيانات في ECMASCRIPT تمامًا عن المصفوفات في معظم اللغات الأخرى. على الرغم من أن البيانات الموجودة في ECMASCRIPT هي قائمة مرتبة من البيانات مثل المصفوفات بلغات أخرى ، فإن الفرق هو أن كل عنصر في صفيف ECMASCRIPT يمكنه الاحتفاظ بأي نوع من البيانات ، سواء كانت قيمة أو سلسلة أو كائن عددي. في الوقت نفسه ، يمكن ضبط حجم الصفيف في ECMASCRIPT ديناميكيًا ، أي أنه يمكن أن ينمو تلقائيًا وفقًا لإضافة البيانات لاستيعاب البيانات المضافة حديثًا. فيما يلي ملخص لوظائف التشغيل شائعة الاستخدام واستخدام المصفوفات في JavaScript.
• إنشاء صفيف
هناك طريقتان رئيسيتان لإنشاء المصفوفات: مُنشئ وصفيف حرفي ، كما هو موضح أدناه:
var arr = new array () ؛ var arr = [] ؛
بالنسبة إلى المنشئ ، يمكننا تمرير قيمة رقمية لإنشاء صفيف يحتوي على عدد معين من المصطلحات ، على النحو التالي:
var arr = صفيف جديد (3) ؛ // طول الصفيف هو 3
يمكنك أيضًا تمرير القيم المخزنة مباشرة في الصفيف ، على النحو التالي:
var arr = new Array ("Red" ، "Green" ، "Blue") ؛في كلتا الحالتين ، يوصى باستخدام حرفي المصفوفة لإنشاء صفائف.
• صفيف الكشف
بالنسبة لبيئة تنفيذ عالمية واحدة ، يمكن لمشغل مثيل OF اكتشاف ما إذا كان صفيفًا ، على سبيل المثال:
var arr = [1،2،3] ؛ console.log (arr extryof array) ؛ //حقيقي
ومع ذلك ، إذا كانت صفحة الويب تحتوي على أطر عمل متعددة ، فإنها تحتوي أيضًا على بيئات تنفيذ عالمية متعددة. أضافت ES5 طريقة Array.isarray () لتحديد ما إذا كانت القيمة عبارة عن صفيف ، بغض النظر عن بيئة التنفيذ العالمية التي تم إنشاؤها ، على النحو التالي:
if (array.isarray (arr)) {// تنفيذ بعض العمليات}• تحويل سلسلة الصفيف
يحتوي كل كائن على طرق tolocalestring () و tostring () و valueof (). سيؤدي استدعاء طريقة ToString () للمصفوفة إلى إرجاع سلسلة مرسلة في شكل سلسلة من كل قيمة في الصفيف وفصلها بواسطة الفواصل. سيؤدي استدعاء طريقة ValueOF () للمصفوفة إلى إرجاع صفيف ، ولكن في الواقع يطلق عليه طريقة ToString () لكل عنصر في الصفيف ، على النحو التالي:
var arr = ["Red" ، "Green" ، "Blue"] ؛ console.log (arr.toString ()) ؛ // Red ، Green ، Blue Console.log (arr.valueof ()) ؛ // Red ، Green ، Blue Console.log (ARR) ؛ // الأحمر ، الأخضر ، الأزرق
تختلف طريقة tolocalestring () للمصفوفة عن tostring () التي ستسميها طريقة tolocalestring () لكل عنصر في الصفيف ، وربط قيمة الإرجاع لكل عنصر من عنصر tolocalestring () إلى سلسلة مفصولة بواسطة الفواصل. باستخدام طريقة Join () ، يمكنك استخدام فواصل مختلفة لإنشاء هذه السلسلة ، على النحو التالي:
var arr = ["Red" ، "Green" ، "Blue"] ؛ console.log (arr.join ("،")) ؛ // Red ، Green ، Blue Console.log (arr.join ("||")) ؛ // Red || Green || Blue• أضف وحذف المصفوفات
تستقبل طريقة Push () أي عدد من المعلمات ، وتضيفها واحدًا تلو الآخر إلى نهاية الصفيف ، ويعيد طول المصفوفة المعدلة ، على سبيل المثال:
var arr = [1،2،3] ؛ arr.push (4،5) ؛ console.log (arr) ؛ // [1،2،3،4،5]
على عكس PUSH () هي طريقة pop () ، التي تزيل العنصر الأخير من نهاية الصفيف ويعيد العنصر الذي تمت إزالته ، على سبيل المثال:
var arr = [1،2،3] ؛ arr.pop () ؛ // 3 arr.pop () ؛ // 2 console.log (arr) ؛ // [1]
الطريقتان الآخرتان المستخدمتان هما Shift () و unshift () ، والتي تشبه Pop () و push (). يتم استخدام طريقة shift () لإزالة العناصر من موضع بدء الصفيف وإعادة العناصر التي تمت إزالتها ، على سبيل المثال:
var arr = [1،2،3] ؛ arr.shift () ؛ // 1 arr.shift () ؛ // 2 console.log (arr) ؛ // [3]
طريقة UNSHIFT () هي عكس الغرض من التحول (). يمكن أن يضيف أي عنصر إلى الطرف الأمامي من الصفيف وإرجاع طول الصفيف الجديد ، على سبيل المثال:
var arr = [1،2،3] ؛ arr.unshift (4) ؛ // طول الإرجاع 4 arr.unshift (5) ؛ // طول الإرجاع 5 console.log (arr) ؛ // [1،2،3،4،5]
• الوجه ونوع المصفوفات
طريقة Flip التي توفرها المصفوفة هي عكس () ، والتي تقوم بتزايد ترتيب عناصر البيانات ، على سبيل المثال:
var arr = [1،2،3] ؛ arr.reverse () ؛ console.log (arr) ؛ // [3،2،1]
يمكن أيضًا فرز () تصنيف المصفوفات ، لكن طريقة الفرز الافتراضية ليست هي الحجم ، ولكن يتم فرزها واحدًا تلو الآخر وفقًا للسلسلة المقابلة. يمكن أن تتلقى طريقة SORT () وظيفة مقارنة وتنفيذ الفرز المخصص ، على سبيل المثال:
دالة مقارنة (value1 ، value2) {return value1-value2 ؛ } var arr = [1،3،2،5،4] ؛ arr.sort (مقارنة) ؛ console.log (arr) ؛ // [1،2،3،4،5]• اتصال الصفيف
ستقوم طريقة CORCAT () بإنشاء نسخة من الصفيف الحالي ، ثم إضافة المعلمات المستلمة إلى نهاية النسخة ، وأخيراً إرجاع المصفوفة التي تم بناؤها حديثًا ، مع صفيف الأصلي دون تغيير ، على سبيل المثال:
var arr = [1،2،3] ؛ var arr2 = arr.concat (4 ، [5،6]) ؛ console.log (arr) ؛ // [1،2،3] console.log (arr2) ؛ // [1،2،3،4،5،6]
• تجزئة الصفيف
تتلقى طريقة الشريحة () معلمة أو معلمتين ، أي المواضع البدء والنهاية للعنصر المراد إرجاعه. إذا كانت هناك حاجة إلى معلمة واحدة فقط ، يتم إرجاع جميع العناصر من الموضع المحدد إلى نهاية الصفيف. إذا تم استلام معلمتين ، يتم إرجاع جميع العناصر بين المراكز البدء والنهاية ولكن العناصر التي لا تتضمن المواضع النهائية ، على سبيل المثال:
var arr = [1،2،3،4،5] ؛ var arr2 = arr.slice (1) ؛ // [2،3،4،5] var arr3 = arr.slice (1،3) ؛ // [2،3]
لاحظ أن طريقة الشريحة () لن تؤثر على الصفيف الأصلي.
• طريقة splice ()
نظرًا لأن طريقة splice () قوية للغاية ، فسوف ألخصها بشكل منفصل. يمكن أن تتلقى ثلاثة معلمات. تشير المعلمة الأولى إلى موقع إضافة العناصر أو حذفها ، تشير المعلمة الثانية إلى عدد العناصر المراد حذفها ، وتشير المعلمة الثانية إلى العناصر الجديدة التي تمت إضافتها إلى الصفيف (اختياري). من خلال توفير معلمات مختلفة ، يمكنك تحقيق وظائف مثل الحذف والإدراج والاستبدال ، مثل:
var arr = [1،2،3،4،5] ؛ Arr.Splice (2،0،11،22) ؛ // إدراج عنصرين من الموضع 2 ، console.log (arr) ؛ // [1،2،11،22،3،5،5] arr.splice (2،2،33،44) ؛ // حذف عنصرين من الموضع 2 ، إدراج عنصرين ، وإرجاع العنصر المحذوف. console.log (ARR) ؛ // [1،2،33،44،4،5] arr.splice (1،1) ؛ // حذف عنصر واحد من الموضع 1 ، وإرجاع وحدة Console.log المحذوفة (ARR) ؛ // [1،33،44،4،5]
• طريقة موقف الصفيف
يوفر ES5 طريقتين للوضع: indexof () و LastIndexof (). تتلقى كلتا الطريقتين معلمتين: العنصر المطلوب العثور عليه والفهرس الذي يشير إلى موقع نقطة بدء البحث (اختياري). تنظر طريقة IndexOF () إلى الوراء من بداية الصفيف ، في حين تتطلع LastIndexof () إلى الأمام من نهاية الصفيف ، على سبيل المثال:
var arr = [1،2،3،4،5،4،3،2،1] ؛ console.log (arr.indexof (4)) ؛ // 3 console.log (arr.lastindexof (4)) ؛ // 5 console.log (arr.indexof (4،4)) ؛ // 5 console.log (arr.lastindexof (4،4)) ؛ // 3
• طريقة تكرار الصفيف
يحدد ES5 5 طرق تكرارية ، كل منها يتلقى معلمتين: الوظيفة التي سيتم تشغيلها على كل عنصر و (اختياري) كائن النطاق الذي يدير الوظيفة - القيمة التي تؤثر على ذلك. يمكن أن تتلقى الوظيفة التي تمر في هذه الطرق ثلاث معلمات: قيمة عنصر الصفيف ، وفهرس العنصر في الصفيف ، وكائن الصفيف نفسه.
من بينها ، كل طريقة () وطريقة بعض () متشابهة. بالنسبة لكل طريقة () ، يجب أن تُرجع الوظيفة التي تم تمريرها بشكل صحيح لكل عنصر قبل إرجاع هذه الطريقة بشكل صحيح. بالنسبة لبعض () ، تُرجع الطريقة بشكل صحيح طالما أن الوظيفة التي تم تمريرها تُرجع إلى أي عنصر في الصفيف. الأمثلة على النحو التالي:
var arr = [1،2،3،4،5،4،3،2،1] ؛ var everyresult = arr.every (وظيفة (العنصر ، الفهرس ، المصفوفة) {return (item> 2) ؛}) ؛ console.log (EveryResult) ؛ // false ، ليس أكبر من 2 var someresult = arr.some (وظيفة (العنصر ، الفهرس ، المصفوفة) {return (item> 2) ؛}) ؛ console.log (someresult) ؛ // صحيح ، إذا كان عنصر واحد أكبر من 2تحدد طريقة المرشح () ما إذا كان يجب تضمين عنصر في الصفيف الذي تم إرجاعه بناءً على الوظيفة المحددة ، على سبيل المثال:
var arr = [1،2،3،4،5،4،3،2،1] ؛ var filterresult = arr.filter (function (item ، index ، array) {return (item> 2) ؛}) ؛ console.log (filterResult) ؛ // [3،4،5،4،3] ، إرجاع صفيف مع جميع القيم أكبر من 2تقوم طريقة MAP () بتشغيل الوظيفة المحددة لكل عنصر في الصفيف ، ثم تقوم بإرجاع المصفوفة المكونة من نتيجة تشغيل كل عنصر ، على سبيل المثال:
var arr = [1،2،3،4،5،4،3،2،1] ؛ var mapresult = arr.map (وظيفة (العنصر ، الفهرس ، المصفوفة) {return item*2 ؛}) ؛ console.log (mapResult) ؛ // [2،4،6،8،10،8،6،4،2] ، اضرب كل عنصر في الصفيف الأصلي بمقدار 2 والعودةالطريقة الأخيرة هي foreach () ، التي تدير الوظيفة المحددة فقط على كل عنصر في الصفيف ، دون قيمة إرجاع ، على سبيل المثال:
var arr = [1،2،3،4،5،4،3،2،1] ؛ arr.foreach (وظيفة (العنصر ، الفهرس ، المصفوفة) {// تنفيذ بعض العمليات}) ؛• طريقة الحد من المصفوفة
يوفر ES5 أيضًا طريقتين لتقليل المصفوفات: تقليل () وخفض (). تكرر كلتا الطريقتين على جميع العناصر في الصفيف وإرجاع القيمة النهائية. تقليل () يعبر تدريجياً من العنصر الأول إلى العنصر الأخير ، يعبر المخفض () من العنصر الأخير إلى نهاية العنصر الأول. تتلقى كلتا الوظيفتين أربع معلمات: القيمة السابقة ، والقيمة الحالية ، وفهرس العنصر ، وكائن الصفيف. سيتم تمرير أي قيمة يتم إرجاعها بواسطة هذه الوظيفة تلقائيًا إلى العنصر التالي باعتباره المعلمة الأولى. على سبيل المثال ، استخدم طريقة LEMPER () للعثور على مجموع جميع العناصر في المصفوفة:
var arr = [1،2،3،4،5] ؛ var sum = arr.reduce (function (pre ، cur ، index ، array) {return pre+cur ؛}) ؛ console.log (sum) ؛ // 15في المرة الأولى التي يتم فيها تنفيذ وظيفة رد الاتصال ، Pre Is 1 و Cur هي 2. في المرة الثانية ، Pre هي 3 (1+2) و Cur هي 3. هذه العملية ستصل إلى كل عنصر في المصفوفة وأعيد النتيجة أخيرًا. تشبه طريقة التخفيض () تقليل () ، ولكن الاتجاه هو عكس ذلك.
تم تلخيص هذه الملاحظة بشكل أساسي بناءً على برمجة JavaScript المتقدمة والموارد عبر الإنترنت. يرجى الإشارة إلى ما إذا كانت هناك أي نقاط غير مكتملة.
تعتمد المقالة أعلاه على طريقة صفيف JavaScript (يجب القراءة للمبتدئين) هو كل المحتوى الذي أشاركه معك. آمل أن تتمكن من إعطائك مرجعًا وآمل أن تتمكن من دعم wulin.com أكثر.