صفيف الصفيف
1. مقدمة
مجموعة هي مجموعة من القيم المطلوبة. تسمى كل قيمة عنصر ، وكل عنصر له موضع في الصفيف ، ويمثله رقم ، يسمى الفهرس. صفائف JavaScript من أي نوع: يمكن أن تكون عناصر الصفيف من أي نوع ، وقد تحتوي العناصر المختلفة في نفس الصفيف أيضًا على أنواع مختلفة. -"دليل موثوق لجافا سكريبت (الطبعة السادسة)"
2. التعريف
نسخة الكود كما يلي:
var names = new array ("Zhang San" ، "Li Si" ، "Wang Wu") ؛
//أو
var names = ["Zhang San" ، "Li Si" ، "Wang Wu"] ؛
3
الطول: يمثل طول العنصر في الصفيف.
4. طريقة مثال
الطرق الشائعة:
1) UNSHIFT (): إدراج عنصر على رأس الصفيف
2) Shift (): قم بإزالة العنصر الأول من الصفيف وإرجاعه
3) push (): أدخل عنصر في نهاية المصفوفة
4) pop (): قم بإزالة العنصر الأخير من الصفيف وإرجاعه
4.1 CONCAT (): توصيل العناصر إلى صفيف. لن يتم تعديل الصفيف الأصلي ، وسيتم إرجاع الصفيف الجديد.
المعلمة:
①value1 ، value2 ... Valuen: أي عدد من القيم
قيمة الإرجاع:
{Array} صفيف جديد يحتوي على الصفيف الأصلي والعناصر المضافة حديثًا.
مثال:
نسخة الكود كما يلي:
var demoarray = ['a' ، 'b' ، 'c'] ؛
var demoarray2 = demoarray.concat ('e') ؛
console.log (demoarray) ؛ // => demoarray: ['a' ، 'b' ، 'c'] لا يتغير الصفيف الأصلي
console.log (demoarray2) ؛ // => ['a' ، 'b' ، 'c' ، 'e']
4.2 كل (): اجتياز العناصر بدوره لتحديد ما إذا كان كل عنصر صحيحًا
المعلمة:
① الوظيفة (القيمة ، الفهرس ، الذات) {}: سيستخدم كل عنصر هذه الوظيفة لتحديد ما إذا كانت صحيحة. عندما يتم الحكم على أن الشخص غير صحيح ، سيتم الانتهاء من الالتحاق على الفور.
القيمة: عنصر اجتياز الصفيف
الفهرس: رقم العنصر
الذات: صفيف نفسه
قيمة الإرجاع:
{Boolean}: إرجاع صحيح فقط إذا كان كل عنصر صحيحًا ؛ إذا كان المرء كاذبًا ، فأعود كاذبة.
مثال:
نسخة الكود كما يلي:
var demoarray = [1 ، 2 ، 3] ؛
var rs = demoarray.every (وظيفة (القيمة ، الفهرس ، الذات) {
قيمة الإرجاع> 0 ؛
}) ؛
console.log (RS) ؛ // => صحيح
4.3 Filter (): اجتياز العناصر بدوره وإرجاع مجموعة جديدة تحتوي على عناصر تلبي المعايير.
المعلمة:
① الوظيفة (القيمة ، الفهرس ، الذات) {}: كل عنصر يدعو هذه الوظيفة بدوره ، وإعادة صفيف جديد يحتوي على عناصر تلبي المعايير.
القيمة: عنصر اجتياز الصفيف
الفهرس: رقم العنصر
الذات: صفيف نفسه
قيمة الإرجاع:
{Array} صفيف جديد يحتوي على عناصر تتطابق مع المعايير
مثال:
نسخة الكود كما يلي:
var demoarray = [1 ، 2 ، 3] ؛
var rs = demoarray.filter (function (value ، index ، self) {
قيمة الإرجاع> 0 ؛
}) ؛
console.log (RS) ؛ // => [1 ، 2 ، 3]
4.4 foreach (): Traverse Elements في التسلسل وتنفيذ الوظيفة المحددة ؛ لا قيمة الإرجاع.
المعلمة:
① الوظيفة (القيمة ، الفهرس ، الذات) {}: كل عنصر يدعو هذه الوظيفة بدوره
القيمة: عنصر اجتياز الصفيف
الفهرس: رقم العنصر
الذات: صفيف نفسه
قيمة الإرجاع: لا شيء
مثال:
نسخة الكود كما يلي:
var demoarray = [1 ، 2 ، 3] ؛
demoarray.foreach (وظيفة (القيمة ، الفهرس ، الذات) {
console.log (القيمة) ؛ // => الإخراج في التسلسل: 1 2 3
}) ؛
4.5 IndexOF (): العثور على عناصر مطابقة في صفيف. إذا لم يكن هناك عنصر مطابق ، فالتراجع -1. استخدم مشغل "===" عند البحث ، لذلك تحتاج إلى التمييز بين 1 و "1"
المعلمة:
① القيمة: القيمة التي يمكن العثور عليها في الصفيف.
② بدء تشغيل: موضع الرقم التسلسلي الذي يبدأ في البحث ، إذا تم حذفه ، فهو 0.
قيمة الإرجاع:
{int}: إرجاع القيمة المطابقة الأولى في الصفيف. إذا لم يكن موجودًا ، فأعد -1
مثال:
نسخة الكود كما يلي:
['a' ، 'b' ، 'c']. indexof ('a') ؛ // => 0
['a' ، 'b' ، 'c']. indexof ('a' ، 1) ؛ // =>-1
['a' ، 'b' ، 'c']. indexof ('d') ؛ // =>-1
[1 ، 2 ، 3] .indexof ('1') ؛ // => -1: طريقة مطابقة '===' المستخدمة
4.6 انضم (): لصق جميع العناصر في الصفيف في سلسلة من خلال محدد.
المعلمة:
①sparator {String}: الفاصل بين كل عنصر. إذا تم حذفها ، فهي مفصولة بواسطة فاصلة اللغة الإنجليزية "، بشكل افتراضي.
قيمة الإرجاع:
{string}: سلسلة تم تقسيمها بواسطة كل عنصر مع ضجة كفاصل.
مثال:
نسخة الكود كما يلي:
['a' ، 'b' ، 'c']. // => 'a ، b ، c'
['a' ، 'b' ، 'c']. انضم ('-') ؛ // => 'AB-C'
4.7 LastIndexof: البحث عن العناصر المطابقة بشكل عكسي في صفيف. إذا لم يكن هناك عنصر مطابق ، فالتراجع -1. استخدم مشغل "===" عند البحث ، لذلك تحتاج إلى التمييز بين 1 و "1"
المعلمة:
① القيمة: القيمة التي يمكن العثور عليها في الصفيف.
② بدء تشغيل: موضع رقم التسلسل الذي يبدأ البحث. إذا تم حذفه ، ابدأ في البحث من العنصر الأخير.
قيمة الإرجاع:
{int}: ابدأ في العثور على قيمة المطابقة الأولى في الصفيف من اليمين إلى اليسار. إذا لم يكن موجودًا ، فأعد -1
مثال:
نسخة الكود كما يلي:
['a' ، 'b' ، 'c']. lastIndExof ('a') ؛ // => 0
['a' ، 'b' ، 'c']. lastIndExof ('a' ، 1) ؛ // => 0
['a' ، 'b' ، 'c']. lastIndExof ('d') ؛ // => -1
[1 ، 2 ، 3] .lastindexof ('1') ؛ // => -1: طريقة مطابقة '===' المستخدمة
4.8 MAP (): تكرار وحساب كل عنصر في التسلسل ، وإرجاع المجموعة المحسوبة للعناصر
المعلمة:
① الوظيفة (القيمة ، الفهرس ، الذات) {}: كل عنصر يدعو هذه الوظيفة بدوره لإرجاع العنصر المحسوب
القيمة: عنصر اجتياز الصفيف
الفهرس: رقم العنصر
الذات: صفيف نفسه
قيمة الإرجاع:
{Array} صفيف جديد يحتوي على عناصر جيدة
مثال:
نسخة الكود كما يلي:
[1 ، 2 ، 3] .MAP (الوظيفة (القيمة ، الفهرس ، الذات) {
قيمة الإرجاع * 2 ؛
}) ؛ // => [2 ، 4 ، 6]
4.9 pop (): قم بإزالة العنصر الأخير من الصفيف وإرجاعه
المعلمات: لا شيء
قيمة الإرجاع:
{Object} العنصر الأخير من المصفوفة ؛ إذا كانت الصفيف فارغة ، فأعود غير محدد
مثال:
نسخة الكود كما يلي:
var demoarray = ['a' ، 'b' ، 'c'] ؛
demoarray.pop () ؛ // => ج
demoarray.pop () ؛ // => ب
demoarray.pop () ؛ // => أ
demoarray.pop () ؛ // => غير محدد
4.10 push (): أضف عناصر إلى نهاية المصفوفة
المعلمة:
①value1 ، value2 ... valuen: أضف أي عدد من القيم إلى نهاية الصفيف
قيمة الإرجاع:
{int} الطول الجديد للمصفوفة
مثال:
نسخة الكود كما يلي:
var demoarray = ['a' ، 'b' ، 'c'] ؛
demoarray.push ('d') ؛ // => 4 ، demoarray: ['a' ، 'b' ، 'c' ، 'd']
demoarray.push ('e' ، 'f') ؛ // => 6 ، demoarray: ['a' ، 'b' ، 'c' ، 'd' ، 'e' ، 'f']
console.log (demoarray) ؛ // => ['a' ، 'b' ، 'c' ، 'd' ، 'e' ، 'f']
4.11 عكسي (): عكس ترتيب عناصر الصفيف.
المعلمات: لا شيء
قيمة الإرجاع: لا شيء (ترتيب العنصر المقلوب في الصفيف الأصلي).
مثال:
نسخة الكود كما يلي:
var demoarray = ['a' ، 'b' ، 'c' ، 'd' ، 'e'] ؛
demoarray.reverse () ؛
console.log (demoarray) ؛ // => ["E" ، "D" ، "C" ، "B" ، "A"]
4.12 Shift (): قم بإزالة وإرجاع العنصر الأول من الصفيف
المعلمات: لا شيء
قيمة الإرجاع:
{Object} العنصر الأول من الصفيف ؛ إذا كان الصفيف فارغًا ، فسيتم إرجاع غير محدد.
مثال:
نسخة الكود كما يلي:
var demoarray = ['a' ، 'b' ، 'c'] ؛
demoarray.shift () ؛ // => أ
demoarray.shift () ؛ // => ب
demoarray.shift () ؛ // => ج
demoarray.shift () ؛ // => غير محدد
4.13 شريحة (startIndex ، EndIndex): إرجاع جزء من الصفيف.
المعلمة:
① startIndex: رقم التسلسل في البداية ؛ إذا كان رقمًا سالبًا ، فهذا يعني أن الحساب يبدأ من النهاية ، ويمثل -1 العنصر الأخير ، -2 هو الثاني إلى الماضي ، وما إلى ذلك.
②endIndex: آخر رقم تسلسل للعنصر في النهاية ، إن لم يتم تحديده ، النهاية هي النهاية. لا يحتوي العنصر المعترض على العنصر برقم التسلسل هنا ، والنهاية هي العنصر السابق برقم التسلسل هنا.
قيمة الإرجاع:
{Array} صفيف جديد يحتوي على جميع العناصر من StartIndex إلى العنصر السابق من EndIndex.
مثال:
نسخة الكود كما يلي:
[1 ، 2 ، 3 ، 4 ، 5 ، 6] .slice () ؛ // => [1 ، 2 ، 3 ، 4 ، 5 ، 6]
[1 ، 2 ، 3 ، 4 ، 5 ، 6] .slice (1) ؛ // => [2 ، 3 ، 4 ، 5 ، 6]: بدءًا من الرقم التسلسلي 1
[1 ، 2 ، 3 ، 4 ، 5 ، 6] .slice (0 ، 4) ؛ // => [1 ، 2 ، 3 ، 4]: اعتراض عنصر الرقم التسلسلي 0 إلى الرقم التسلسلي 3 (الرقم التسلسلي السابق 4)
[1 ، 2 ، 3 ، 4 ، 5 ، 6] .slice (-2) ؛ // => [5 ، 6]: اعتراض العناصر 2 التالية
4.14 الفرز (OPT_ORDERFUNC): الفرز وفقًا لقواعد معينة
المعلمة:
① opt_orderfunc (v1 ، v2) {function}: وظيفة قاعدة الفرز الاختيارية. إذا تم حذفها ، سيتم فرز رسائل العنصر من صغير إلى كبير.
V1: تم اجتياز العنصر السابق.
V2: يتم اجتياز العناصر التالية.
قواعد الفرز:
قارن V1 و V2 وإرجاع رقم لتمثيل قواعد الفرز لـ V1 و V2:
أقل من 0: V1 أقل من V2 ، V1 قبل V2.
يساوي 0: V1 يساوي V2 ، V1 قبل V2.
أكبر من 0: V1 أكبر من V2 ، V1 وراء V2.
قيمة الإرجاع: لا شيء (عمليات الفرز في الصفيف الأصلي).
مثال:
نسخة الكود كما يلي:
[1 ، 3 ، 5 ، 2 ، 4 ، 11 ، 22] .Sort () ؛ // => [1 ، 11 ، 2 ، 22 ، 3 ، 4 ، 5]: يتم تحويل جميع العناصر إلى أحرف ، وشخصيات 11 قبل 2
[1 ، 3 ، 5 ، 2 ، 4 ، 11 ، 22].
Return v1 - v2 ؛
}) ؛ // => [1 ، 2 ، 3 ، 4 ، 5 ، 11 ، 22]: مرتبة من صغيرة إلى كبيرة
[1 ، 3 ، 5 ، 2 ، 4 ، 11 ، 22].
العودة - (v1 - v2) ؛ // معكوس ، يمكنك التحويل من كبير إلى صغير
}) ؛ // => [22 ، 11 ، 5 ، 4 ، 3 ، 2 ، 1]
4.15 لصق (): أدخل وحذف عناصر الصفيف
المعلمة:
① ابدأ {int}: رقم تسلسل البدء للبدء في إدراج أو حذف أو استبدال.
②deleteCount {int}: عدد العناصر المراد حذفها ، ابدأ الحساب من البداية.
③value1 ، value2 ... Valuen {Object}: معلمة اختيارية ، تشير إلى العنصر المراد إدراجه ، ويبدأ في الإدراج من البداية. إذا كانت المعلمة ② ليست 0 ، فقم بإجراء عملية الحذف أولاً ثم قم بإجراء عملية إدراج.
قيمة الإرجاع:
{Array} إرجاع مجموعة جديدة تحتوي على عناصر محذوفة. إذا كانت المعلمة ② 0 ، فهذا يعني أنه لا يتم حذف أي عنصر وإعادة صفيف فارغ.
مثال:
نسخة الكود كما يلي:
// 1. حذف
var demoarray = ['a' ، 'b' ، 'c' ، 'd' ، 'e'] ؛
var demoarray2 = demoarray.splice (0 ، 2) ؛ // حذف عنصرين يبدأان من 0 من رقم التسلسل وإرجاع صفيف يحتوي على العناصر المحذوفة: ['a' ، 'b']
console.log (demoarray2) ؛ // => ['a' ، 'b']
console.log (demoarray) ؛ // => ['c' ، 'd' ، 'e']
// 2. أدخل
var demoarray = ['a' ، 'b' ، 'c' ، 'd' ، 'e'] ؛
var demoarray2 = demoarray.splice (0 ، 0 ، '1' ، '2' ، '3') ؛ // ② المعلمة هي 0 ، وإرجاع صفيف فارغ
console.log (demoarray2) ؛ // => []
console.log (demoarray) ؛ // => ['1' ، '2' ، '3' ، 'a' ، 'b' ، 'c' ، 'd' ، 'e']
// 3. حذف أولاً ثم أدخل
var demoarray = ['a' ، 'b' ، 'c' ، 'd' ، 'e'] ؛
// عندما لا تكون المعلمة ② 0 ، ثم قم بإجراء عملية الحذف أولاً (حذف 4 عناصر برقم تسلسل تبدأ من 0
var demoarray2 = demoarray.splice (0 ، 4 ، '1' ، '2' ، '3') ؛
console.log (demoarray2) ؛ // => ['a' ، 'b' ، 'c' ، 'd']
console.log (demoarray) ؛ // => ['1' ، '2' ، '3' ، 'a' ، 'b' ، 'c' ، 'd' ، 'e']
4.16 ToString (): غرز جميع العناصر في الصفيف في سلسلة من خلال فاصلة باللغة الإنجليزية "،".
المعلمات: لا شيء
قيمة الإرجاع:
{String} يتم تقطيع جميع العناصر الموجودة في الصفيف إلى سلسلة من قبل فاصلة باللغة الإنجليزية "، وعادت. الشيء نفسه هو استدعاء طريقة Join () بدون معلمات.
مثال:
نسخة الكود كما يلي:
[1 ، 2 ، 3 ، 4 ، 5] .ToString () ؛ // => '1،2،3،4،5'
['a' ، 'b' ، 'c' ، 'd' ، 'e']. toString () ؛ // => 'a ، b ، c ، d ، e'
4.17 UNSHIFT (): أدخل عنصر على رأس المصفوفة
المعلمة:
①value1 ، value2 ... valuen: أضف أي عدد من القيم إلى رأس الصفيف
قيمة الإرجاع:
{int} الطول الجديد للمصفوفة
مثال:
نسخة الكود كما يلي:
var demoarray = [] ؛
demoarray.unshift ('a') ؛ // => demoarray: ['a']
demoarray.unshift ('b') ؛ // => demoarray: ['b' ، 'a']
demoarray.unshift ('c') ؛ // => demoarray: ['c' ، 'b' ، 'a']
demoarray.unshift ('d') ؛ // => demoarray: ['d' ، 'c' ، 'b' ، 'a']
demoarray.unshift ('e') ؛ // => demoarray: ['e' ، 'd' ، 'c' ، 'b' ، 'a']
5. طريقة ثابتة
5.1 array.isarray (): يحدد ما إذا كان الكائن عبارة عن صفيف
المعلمة:
①value {Object}: أي كائن
قيمة الإرجاع:
{Boolean} يعيد نتيجة الحكم. عندما يكون صحيحًا ، فهذا يعني أن الكائن عبارة عن صفيف ؛ عندما يكون خطأ ، فهذا يعني أن الكائن ليس صفيفًا
مثال:
نسخة الكود كما يلي:
array.isarray ([]) ؛ // => صحيح
array.isarray (['a' ، 'b' ، 'c']) ؛ // => صحيح
array.isarray ('a') ؛ // => خطأ
array.isarray ('[1 ، 2 ، 3]') ؛ // => خطأ
6. العملية العملية
6.1 فهرس
الوصف: لكل عنصر موضع في الصفيف ، ويمثله رقم ، يسمى الفهرس. يبدأ الفهرس من 0 ، أي فهرس العنصر الأول هو 0 ، فهرس العنصر الثاني هو 1 ، وهكذا ؛
عند الحصول على فهرس غير موجود في صفيف ، يتم إرجاع غير محدد.
مثال:
نسخة الكود كما يلي:
var demoarray = ['a' ، 'b' ، 'c' ، 'd' ، 'e'] ؛
demoarray [0] ؛ // => احصل على العنصر الأول: "أ"
demoarray [0] = 1 ؛ // اضبط العنصر الأول على 1
console.log (demoarray) ؛ // => demoarray: [1 ، 'b' ، 'c' ، 'd' ، 'e']
console.log (Demoarray [9]) ؛ // => غير محدد: إرجاع غير محدد عند عدم وجود فهرس تم الحصول عليه
6.2 للبيانات
ملاحظة: يمكنك اجتياز الصفيف واحدًا تلو الآخر من خلال البيان
مثال:
نسخة الكود كما يلي:
var demoarray = ['a' ، 'b' ، 'c' ، 'd' ، 'e'] ؛
لـ (var i = 0 ، length = demoarray.length ؛ i <length ؛ i ++) {
console.log (demoarray [i]) ؛ // => عناصر الإخراج في المصفوفة واحدة تلو الأخرى
}
6.3 نسخة ضحلة
ملاحظة: نوع الصفيف هو نوع مرجعي ؛ عندما يتم نسخ Array A إلى Array B ، يتم إجراء تعديل العناصر إلى Array B ، وسيتم أيضًا تعديل Array A.
مثال:
نسخة الكود كما يلي:
var demoarraya = ['a' ، 'b' ، 'c' ، 'd' ، 'e'] ؛
var demoarrayb = demoarraya ؛ // تعيين صفيف أ إلى صفيف ب
DemoArrayb [0] = 1 ؛ // تعديل عناصر الصفيف ب
console.log (demoarraya) ؛ // => [1 ، 'b' ، 'c' ، 'd' ، 'e']: لقد تغيرت عناصر Array A أيضًا
6.4 نسخة عميقة
ملاحظة: استخدم طريقة Concat () لإرجاع مجموعة جديدة ؛ منع النسخ الضحل ، وإجراء عمليات تعديل العناصر على المصفوفة B ، ولن يتغير المصفوفة A.
مثال:
نسخة الكود كما يلي:
var demoarraya = ['a' ، 'b' ، 'c' ، 'd' ، 'e'] ؛
var demoarrayb = demoarraya.concat () ؛ // استخدم طريقة concat () لإرجاع مجموعة جديدة
DemoArrayb [0] = 1 ؛ // تعديل عناصر الصفيف ب
console.log (demoarraya) ؛ // => ['a' ، 'b' ، 'c' ، 'd' ، 'e']: لم تتغير عناصر Array A
console.log (DemoArrayB) ؛ // => [1 ، 'b' ، 'c' ، 'd' ، 'e']: لقد تغير عنصر الصفيف B