La adición y eliminación de los elementos de matriz JS ha sido confuso. Hoy finalmente encontré la descripción detallada. Me daré un código para probarlo primero^-^
La copia del código es la siguiente:
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`arr.length-1font>) ;//bbb
arr.pop ();
//alert(arr`arr.length-1font>) ;//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);
alerta (arr2.length); // 1
alerta (arr2 [0]); // aaa
alerta (arr2 [1]); // indefinido
Shift: elimine el primer elemento de la matriz original y devuelva el valor del elemento eliminado; Si la matriz está vacía, regrese indefinida
var a = [1,2,3,4,5];
var b = a.shift (); // A: [2,3,4,5] B: 1
Deshift: agregue el parámetro al comienzo de la matriz original y devuelva la longitud de la matriz
var a = [1,2,3,4,5];
var b = a.unshift (-2, -1); // a: [-2, -1,1,2,3,4,5] b: 7
Nota: El valor de retorno de prueba en IE6.0 siempre está indefinido, y el valor de retorno de prueba en FF2.0 es 7, por lo que el valor de retorno de este método no es confiable. Cuando necesite usar el valor de retorno, puede usar Splice en lugar de este método.
Pop: elimine el último elemento de la matriz original y devuelva el valor del elemento eliminado; Si la matriz está vacía, regrese indefinida
var a = [1,2,3,4,5];
var b = a.pop (); // A: [1,2,3,4] B: 5 // Si no necesita regresar, simplemente llámelo directamente
Push: Agregue el parámetro al final de la matriz original y devuelva la longitud de la matriz
var a = [1,2,3,4,5];
var b = a.push (6,7); // A: [1,2,3,4,5,6,7] b: 7
Concat: Devuelve una nueva matriz, que se compone de agregar parámetros a la matriz original.
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 elemento desde la posición de inicio e inserte Val1, Val2, ...
Al borrar la matriz, simplemente pase el inicioindex.
Si no se eliminan todos los elementos, pase el parámetro Deletecount.
El empalme también tiene la función de eliminar primero y luego agregar, es decir, eliminar varios elementos primero y luego agregar varios elementos en la posición eliminada. El número de elementos eliminados y agregados no debe ser igual. En este momento, Deletecount también se usa.
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); // mismo cambio
A.Splice (0,0, -2, -1); var b = a.length; // mismo desgaste
var b = a.splice (a.length-1,1); // mismo pop
A.Splice (A.Length, 0,6,7); var b = a.length; // mismo empuje
Reverso: inverso la matriz
var a = [1,2,3,4,5];
var b = a.reverse (); // A: [5,4,3,2,1] b: [5,4,3,2,1]
Sort (OrderFunction): ordene la matriz por parámetros especificados
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): devuelve una nueva matriz compuesta de elementos desde el subíndice de inicio especificado al subíndice final en la matriz original.
var a = [1,2,3,4,5];
var b = A.Slice (2,5); // A: [1,2,3,4,5] b: [3,4,5]
unirse (separador): agrupe los elementos de la matriz en una cadena, con separador como separador. Si se omite, use las comas como separador de forma predeterminada.
var a = [1,2,3,4,5];
var b = A.Join ("|"); // A: [1,2,3,4,5] b: "1 | 2 | 3 | 4 | 5"
Aquí hay otra forma de usar la matriz para simular JavastringBuffer para procesar cadenas:
/**
* Función de procesamiento de cadenas
*/
función stringBuffer () {
var arr = nueva matriz;
this.append = function (str) {
arr [arr.length] = str;
};
this.ToString = function () {
devolver arr.join (""); // ping la matriz que se agrega en una cadena
};
}
Hoy, de repente descubrí que Join es una buena manera de convertir las matrices en cadenas en la aplicación, por lo que las encapsulé en objetos y utilicé:
/**
*Convierta las matrices en cadenas divididas por símbolos específicos
*/
función ArrayToString (arr, separator) {
if (! separator) separator = ""; // Si el separador es nulo, estará vacío de forma predeterminada
regresar arr.join (separador);
}
/**
* Encuentra la cadena contenida en la matriz
*/
function arrayFindString (arr, string) {
var str = arr.join ("");
return str.indexof (cadena);
}