كانت إضافة وحذف عناصر صفيف JS مربكة. اليوم وجدت أخيرًا الوصف التفصيلي. سأعطيني رمزًا لاختباره أولاً^-^
نسخة الكود كما يلي:
var arr = new array () ؛
arr [0] = "aaa" ؛
arr [1] = "BBB" ؛
arr [2] = "CCC" ؛
//alert(arr.length) ؛//3
arr.pop () ؛
//alert(arr.length) ؛//2
//alert(arr budaparr.length-1 :) ؛//bbb
arr.pop () ؛
//alert(arr budaparr.length-120) ؛//aaa
//alert(arr.length) ؛//1
var arr2 = new array () ؛
//alert(arr2.length) ؛//0
ARR2 [0] = "AAA" ؛
ARR2 [1] = "BBB" ؛
//alert(arr2.length) ؛//2
arr2.pop () ؛
//alert(arr2.length) ؛//1
arr2 = arr2.slice (0 ، arr2.length-1) ؛
//alert(arr2.length) ؛//0
ARR2 [0] = "AAA" ؛
ARR2 [1] = "BBB" ؛
ARR2 [2] = "CCC" ؛
arr2 = arr2.slice (0،1) ؛
تنبيه (arr2.length) ؛ // 1
تنبيه (ARR2 [0]) ؛ // AAA
تنبيه (ARR2 [1]) ؛ // غير محدد
Shift: حذف العنصر الأول من المصفوفة الأصلية وإرجاع قيمة العنصر المحذوف ؛ إذا كانت الصفيف فارغة ، فأعود غير محدد
var a = [1،2،3،4،5] ؛
var b = a.shift () ؛ // a: [2،3،4،5] b: 1
إلغاء الهاوية: أضف المعلمة إلى بداية الصفيف الأصلي وأرجع طول الصفيف
var a = [1،2،3،4،5] ؛
var b = a.unshift (-2 ، -1) ؛ // a: [-2 ، -1،1،2،3،4،5] b: 7
ملاحظة: تكون قيمة إرجاع الاختبار في IE6.0 غير محددة دائمًا ، وقيمة إرجاع الاختبار في FF2.0 هي 7 ، وبالتالي فإن قيمة إرجاع هذه الطريقة غير موثوق بها. عندما تحتاج إلى استخدام قيمة الإرجاع ، يمكنك استخدام لصق بدلاً من هذه الطريقة.
POP: حذف العنصر الأخير من الصفيف الأصلي وإرجاع قيمة العنصر المحذوف ؛ إذا كانت الصفيف فارغة ، فأعود غير محدد
var a = [1،2،3،4،5] ؛
var b = a.pop () ؛ // a: [1،2،3،4] b: 5 // إذا لم تكن بحاجة إلى العودة ، فقط اتصل به مباشرة
اضغط: أضف المعلمة إلى نهاية الصفيف الأصلي وأرجع طول الصفيف
var a = [1،2،3،4،5] ؛
var b = a.push (6،7) ؛ // a: [1،2،3،4،5،6،7] b: 7
Concat: إرجاع صفيف جديد ، يتكون من إضافة معلمات إلى الصفيف الأصلي.
var a = [1،2،3،4،5] ؛
var B = A.Concat (6،7) ؛ // a: [1،2،3،4،5] b: [1،2،3،4،5،6،7]
splice (start ، deletecount ، val1 ، val2 ، ...): deletecount item من موضع البداية ، وإدراج Val1 ، val2 ، ...
عند تطهير المصفوفة ، فقط تمرير startIndex.
إذا لم يتم حذف جميع العناصر ، فالمرض معلمة DELETECOUNT.
لدى Slapice أيضًا وظيفة حذف أولاً ثم إضافة ، أي حذف عدة عناصر أولاً ، ثم إضافة عدة عناصر في الموضع المحذوف. يجب ألا يكون عدد العناصر المحذوفة والمضافة متساوية. في هذا الوقت ، يتم استخدام DeleTeCount أيضًا.
var a = [1،2،3،4،5] ؛
var B = A.Splice (2،2،7،8،9) ؛ // a: [1،2،7،8،9،5] b: [3،4]
var b = a.splice (0،1) ؛ // نفس التحول
A.Splice (0،0 ، -2 ، -1) ؛ var b = a.length ؛ // نفس غير الانهيار
var B = A.Splice (A.Length-1،1) ؛ // نفس البوب
A.Splice (A.Length ، 0،6،7) ؛ var b = A.Length ؛ // نفس الدفع
عكس: عكسي المصفوفة
var a = [1،2،3،4،5] ؛
var b = a.reverse () ؛ // a: [5،4،3،2،1] b: [5،4،3،2،1]
فرز (OrderFunction): فرز الصفيف حسب المعلمات المحددة
var a = [1،2،3،4،5] ؛
var b = a.sort () ؛ // a: [1،2،3،4،5] b: [1،2،3،4،5]
Slice (Start ، End): إرجاع مجموعة جديدة تتكون من عناصر من مجموعة START المحددة إلى التراجع النهائي في الصفيف الأصلي.
var a = [1،2،3،4،5] ؛
var b = a.slice (2،5) ؛ // a: [1،2،3،4،5] b: [3،4،5]
انضم إلى (فاصل): قم بتجميع عناصر الصفيف في سلسلة ، مع فاصل كفاصل. إذا تم حذفه ، استخدم الفواصل كفاصل افتراضيًا.
var a = [1،2،3،4،5] ؛
var b = A.Join ("|") ؛ // a: [1،2،3،4،5] b: "1 | 2 | 3 | 4 | 5"
فيما يلي طريقة أخرى لاستخدام Array لمحاكاة JavastringBuffer لمعالجة السلاسل:
/**
* وظيفة معالجة السلسلة
*/
وظيفة StringBuffer () {
var arr = صفيف جديد ؛
this.append = function (str) {
arr [arr.length] = str ؛
} ؛
this.toString = function () {
إرجاع arr.join ("") ؛ // ping الصفيف الذي يلحق بسلسلة
} ؛
}
اليوم ، اكتشفت فجأة أن الانضمام هو وسيلة جيدة لتحويل المصفوفات إلى سلاسل في التطبيق ، لذلك قمت بتغليفها في كائنات واستخدمت:
/**
*تحويل المصفوفات إلى سلاسل مقسمة برموز محددة
*/
وظيفة ArrayToString (ARR ، فاصل) {
إذا كان (فاصل) فاصل = "" ؛ // إذا كان الفاصل فارغًا ، فسيكون فارغًا افتراضيًا
إرجاع arr.join (فاصل) ؛
}
/**
* ابحث عن السلسلة الموجودة في الصفيف
*/
وظيفة ArrayFindString (arr ، سلسلة) {
var str = arr.join ("") ؛
إرجاع str.indexof (سلسلة) ؛
}