يلخص هذا المثال تقنيات التشغيل المشتركة لمصفوفات JavaScript. شاركه للرجوع إليه. التفاصيل كما يلي:
مقدمة
أعتقد أن كل شخص معتاد على استخدام العمليات المتعلقة بالمصفوفة شائعة الاستخدام في مكتبات الفصل مثل jQuery أو Swentscore ، مثل $ .isarray و _..some و _.find وطرق أخرى. هنا ليس أكثر من مجرد مغلفات أكثر بقليل لعمليات صفيف JS الأصلية.
هنا سنلخص بشكل أساسي واجهات برمجة التطبيقات المشتركة لعمليات صفيف JavaScript. أعتقد أنه سيكون من المفيد للغاية أن يحل الجميع مشاكل البرنامج.
1. الطبيعة
صفيف في JavaScript هو كائن خاص ، والفهرس المستخدم لتمثيل الإزاحة هو خاصية للكائن ، وقد يكون الفهرس عدد صحيح. ومع ذلك ، يتم تحويل هذه الفهارس الرقمية داخليًا إلى نوع السلسلة ، لأن اسم السمة في كائن JavaScript يجب أن يكون سلسلة.
2. العملية
1 حدد نوع الصفيف
انسخ الكود على النحو التالي: var array0 = [] ؛ // الحرفي
var array1 = new array () ؛ // مُنشئ
// ملاحظة: لا يتم دعم طريقة Array.isarray بموجب IE6/7/8
ALERT (ARRAY.ISARRAY (ARRAY0)) ؛
// النظر في التوافق ، يمكن استخدامه
تنبيه (Array1 مثيل Array) ؛
// أو
ALERT (Object.prototype.toString.call (Array1) === '[abours array]') ؛
2 صفيف وسلسلة
بسيطة جدا: تحويل من صفيف إلى سلسلة ، استخدم الانضمام ؛ تحويل من سلسلة إلى صفيف ، استخدم الانقسام.
انسخ الرمز كما يلي: // انضم - تحويل من صفيف إلى سلسلة ، استخدم الانضمام
console.log (['Hello' ، 'World']. انضم ('،')) ؛ // مرحبا بالعالم
// split - تحويل من سلسلة إلى صفيف ، باستخدام الانقسام
console.log ('Hello World'.Split (' ')) ؛ // ["مرحبا بالعالم"]
3 ابحث عن عناصر
أعتقد أن الجميع يستخدمون غالبًا فهرس نوع السلسلة ، لكن نادراً ما يعلم أنه يمكن أيضًا استخدام فهرس صفيف للعثور على عناصر.
انسخ الرمز على النحو التالي: // indexof - ابحث عن العناصر
console.log (['abc' ، 'bcd' ، 'cde']. indexof ('bcd')) ؛ // 1
//
var objinarray = [
{
الاسم: "الملك" ،
الممر: '123'
} ،
{
الاسم: 'king1' ،
الممر: '234'
}
] ؛
console.log (objinarray.indexof ({
الاسم: "الملك" ،
الممر: '123'
})) ؛ // -1
var elementofarray = objinarray [0] ؛
console.log (objinarray.indexof (elementofarray)) ؛ // 0
من ما سبق ، يمكننا أن نرى أنه بالنسبة لصفيف يحتوي على كائنات ، لا تحصل طريقة الفهرس على نتائج البحث المقابلة من خلال المقارنة العميقة ، ولكنها تقارن المراجع فقط إلى العناصر المقابلة.
4 اتصالات صفيف
عند استخدام Concat ، كن على دراية بأن مجموعة جديدة سيتم إنشاءها بعد استخدام Concat.
نسخة الكود كما يلي: var array1 = [1 ، 2 ، 3] ؛
var array2 = [4 ، 5 ، 6] ؛
var array3 = Array1.Concat (Array2) ؛ // بعد تنفيذ اتصال الصفيف ، سيتم إنشاء مجموعة جديدة
console.log (Array3) ؛
5 فئات من عمليات القائمة
لإضافة عناصر ، يمكنك استخدام Push و DONSNIFT على التوالي ، ولإزالة العناصر ، يمكنك استخدام POP والتحول على التوالي.
انسخ الرمز على النحو التالي: // push/pop/shift/unsonsift
var Array = [2 ، 3 ، 4 ، 5] ؛
// أضف إلى نهاية المصفوفة
Array.Push (6) ؛
console.log (صفيف) ؛ // [2 ، 3 ، 4 ، 5 ، 6]
// أضف إلى رأس الصفيف
Array.Unshift (1) ؛
console.log (صفيف) ؛ // [1 ، 2 ، 3 ، 4 ، 5 ، 6]
// قم بإزالة العنصر الأخير
var elementofpop = array.pop () ؛
console.log (elementofpop) ؛ // 6
console.log (صفيف) ؛ // [1 ، 2 ، 3 ، 4 ، 5]
// قم بإزالة العنصر الأول
var elementofshift = array.shift () ؛
console.log (elementofshift) ؛ // 1
console.log (صفيف) ؛ // [2 ، 3 ، 4 ، 5]
6 طريقة لصق
استخدامان رئيسيان:
① أضف وحذف عناصر من منتصف الصفيف
② احصل على مجموعة جديدة من المصفوفة الأصلية
بالطبع ، يتم تصنيع الاستخدامات في غاز واحد. تركز بعض السيناريوهات على الغرض الأول ، بينما يركز البعض الآخر على الغرض الثاني.
إضافة وحذف عناصر من الموضع الأوسط للمصفوفة. تضيف طريقة لصق عناصر إلى الصفيف. المعلمات التالية مطلوبة.
① فهرس ابدأ (أي ، حيث تريد البدء في إضافة عناصر)
② عدد العناصر التي يجب حذفها أو عدد العناصر المستخرجة (يتم تعيين المعلمة على 0 عند إضافة عناصر)
③ العناصر التي تريد إضافتها إلى المصفوفة
نسخة الكود كما يلي: var nums = [1 ، 2 ، 3 ، 7 ، 8 ، 9] ؛
nums.splice (3 ، 0 ، 4 ، 5 ، 6) ؛
console.log (nums) ؛ // [1 ، 2 ، 3 ، 4 ، 5 ، 6 ، 7 ، 8 ، 9]
// ثم قم بتشغيل حذف أو استخراج صفيف جديد
var newnums = nums.splice (3 ، 4) ؛
console.log (nums) ؛ // [1 ، 2 ، 3 ، 8 ، 9]
console.log (newNums) ؛ // [4 ، 5 ، 6 ، 7]
7 نوع
المقدمة الرئيسية لطرق عكس وفرز. يستخدم انقلاب الصفيف العكسي ، ويمكن استخدام طريقة الفرز ليس فقط للفرز البسيط ، ولكن أيضًا للفرز المعقد.
انسخ الرمز على النحو التالي:/ عكس الصفيف
var Array = [1 ، 2 ، 3 ، 4 ، 5] ؛
Array.reverse () ؛
console.log (صفيف) ؛ // [5 ، 4 ، 3 ، 2 ، 1]
نفرز أول مجموعة من عناصر السلسلة
var arrayofNames = ["David" ، "Mike" ، "Cynthia" ، "Clayton" ، "Bryan" ، "Raymond"] ؛
arrayofnames.sort () ؛
console.log (ArrayOfNames) ؛ // ["Bryan" ، "Clayton" ، "Cynthia" ، "David" ، "Mike" ، "Raymond"]
نحن نحل صفائف العناصر الرقمية
انسخ الرمز كما يلي:/ إذا كان عنصر الصفيف هو النوع العددي ، فلن تكون نتيجة فرز طريقة SORT () مرضية.
var nums = [3 ، 1 ، 2 ، 100 ، 4 ، 200] ؛
nums.sort () ؛
console.log (nums) ؛ // [1 ، 100 ، 2 ، 200 ، 3 ، 4]
تقوم طريقة الفرز بفرز العناصر في ترتيب القاموس ، لذلك يفترض أن العناصر كلها أنواع سلسلة ، لذلك حتى لو كانت العناصر أنواعًا رقمية ، فهي تعتبر أنواعًا من السلسلة. في هذا الوقت ، يمكنك تمرير وظيفة مقارنة الحجم عند استدعاء الطريقة. عند الفرز ، ستقارن طريقة SORT () أحجام عنصرين في الصفيف بناءً على الوظيفة ، وبالتالي تحديد ترتيب الصفيف بأكمله.
انسخ الرمز كما يلي: var conside = function (num1 ، num2) {
إرجاع num1> num2 ؛
} ؛
nums.sort (قارن) ؛
console.log (nums) ؛ // [1 ، 2 ، 3 ، 4 ، 100 ، 200]
var objinarray = [
{
الاسم: "الملك" ،
الممر: '123' ،
الفهرس: 2
} ،
{
الاسم: 'king1' ،
الممر: '234' ،
الفهرس: 1
}
] ؛
// ترتيب تصاعدي وفقًا لفهرس عناصر الكائن في الصفيف
var مقارنة = function (O1 ، O2) {
إرجاع O1.Index> O2.Index ؛
} ؛
objinarray.sort (مقارنة) ؛
console.log (objinarray [0] .index <objinarray [1] .index) ؛ // حقيقي
8 طريقة التكرار
يشمل بشكل أساسي foreach وكل ، بعض وخريطة ، مرشح
أعتقد أن الجميع يمكنهم القيام بذلك foreach ، وسأقدم بشكل أساسي الطرق الأربع الأخرى.
تقبل كل طريقة دالة ذات قيمة إرجاع منطقية ، والتي يتم استخدامها لكل عنصر في الصفيف. إذا كانت الوظيفة تُرجع بشكل صحيح لجميع العناصر ، فإن الطريقة تُرجع صحيحًا.
نسخة الكود كما يلي: var nums = [2 ، 4 ، 6 ، 8] ؛
// طريقة التكرار التي لا تولد صفائف جديدة
var iseven = function (num) {
إرجاع num ٪ 2 === 0 ؛
} ؛
// إذا كانت جميعها أرقامًا ، فأرد صحيحًا
console.log (nums.every (iseven)) ؛ // حقيقي
بعض الطريقة تقبل أيضًا وظيفة ذات قيمة إرجاع منطقية. طالما أن هناك عنصرًا يتسبب في إرجاع الوظيفة ، فإن الطريقة تُرجع بشكل صحيح.
var iseven = function (num) {
إرجاع num ٪ 2 === 0 ؛
} ؛
var nums1 = [1 ، 2 ، 3 ، 4] ؛
console.log (nums1.some (iseven)) ؛ // حقيقي
يمكن أن تنتج كل من طرق الخريطة والمرشح صفائف جديدة. الصفيف الجديد الذي تم إرجاعه بواسطة الخريطة هو نتيجة لتطبيق وظيفة على العنصر الأصلي. يحب:
انسخ الرمز كما يلي: var up = function (grade) {
عودة درجة += 5 ؛
}
VAR STRAWES = [72 ، 65 ، 81 ، 92 ، 85] ؛
var newgrades = الدرجات
تشبه طريقة التصفية إلى حد كبير كل طريقة ، تمر في وظيفة ذات قيمة إرجاع منطقية. على عكس كل طريقة () ، عندما يتم تطبيق الوظيفة على جميع العناصر الموجودة في الصفيف والنتيجة صحيحة ، فإن الطريقة لا تُرجع بشكل صحيح ، ولكنها تُرجع مجموعة جديدة تحتوي على العناصر التي تكون نتيجةها صحيحة بعد تطبيق الوظيفة.
انسخ الرمز كما يلي: var iseven = function (num) {
إرجاع num ٪ 2 === 0 ؛
} ؛
var isodd = function (num) {
إرجاع num ٪ 2! == 0 ؛
} ؛
var nums = [] ؛
لـ (var i = 0 ؛ i <20 ؛ i ++) {
nums [i] = i + 1 ؛
}
var evens = nums.filter (iseven) ؛
console.log (evens) ؛ // [2 ، 4 ، 6 ، 8 ، 10 ، 12 ، 14 ، 16 ، 18 ، 20]
var odds = nums.filter (isodd) ؛
console.log (احتمالات) ؛ // [1 ، 3 ، 5 ، 7 ، 9 ، 11 ، 13 ، 15 ، 17 ، 19]
3. ملخص
كما سبق لديه مشكلة مفادها أن بعض الطرق غير مدعومة في المتصفحات ذات المستوى المنخفض ، ويجب استخدام طرق أخرى للتنفيذ المتوافق.
هذه طرق شائعة قد لا يكون من السهل على الجميع التفكير فيها. قد يولي الجميع المزيد من الاهتمام.
آمل أن تكون هذه المقالة مفيدة لبرمجة JavaScript للجميع.