Los tipos de matriz en JavaScript son muy diferentes de los de otros idiomas. Cada elemento en JavaScript puede contener cualquier tipo de datos. Además, el tamaño de las matrices de JavaScript se puede ajustar dinámicamente y puede crecer automáticamente a medida que se agregan datos para acomodar nuevos datos .
Hay dos formas básicas para crear una matriz.
1. Constructor de estrías
VAR CITies = new Array ();
Si conoce el número de elementos que se guardarán por adelantado, también puede pasar este número al constructor, que automáticamente se convertirá en el valor del atributo de longitud.
VAR CITies = nueva matriz (3);
También puede pasar los elementos que deben incluirse en la matriz al constructor de matriz.
Var Cities = New Array ("Shanghai", "Beijing", "Shenzhen");El nuevo operador se puede omitir al crear una matriz:
VAR CITies = Array (3); // Crear una matriz que contenga 3 elementos
2. Representación literal de matriz
La notación literal de la matriz está representada por un par de soportes cuadrados que contienen elementos de matriz, separados por comas, de la siguiente manera:
var ciudades = ["shanghai", "beijing", "shenzhen"]; var ciudades = []; // crear una cadena vacía
Al leer y establecer el valor de una matriz, use entre corchetes y proporcione un índice numérico basado en 0 (basado en 0 se cuenta desde 0, el primer término es 0, el segundo término es 1, y así sucesivamente), como se muestra a continuación:
Var Cities = ["Shanghai", "Beijing", "Shenzhen"]; alerta (ciudades [0]); // "Shanghai" Ciudades [1] = "Hongkong"; // Modificar el segundo elemento "Beijing" a "Hongkong" Cities [3] = "Taiwan" // Agregar un nuevo elemento
El número de elementos en la matriz se guarda en la propiedad de longitud, y no es de solo lectura . Por lo tanto, al configurar la propiedad de longitud, puede eliminar elementos del final de la matriz o agregar nuevos elementos a la matriz.
varias var = ["shanghai", "beijing", "shenzhen"]; ciudad.length = 2; alerta (ciudades [2]); // indefinido
Usando esta propiedad de longitud, puede agregar nuevos elementos al final de la matriz:
Var Cities = ["Shanghai", "Beijing", "Shenzhen"]; Ciudades [CITIES.LENTHY] = "Hongkong";
1. Detectar matriz
ECMAScript5 ha agregado el método Array.IsArray (), que es determinar si un valor es una matriz, independientemente de qué entorno de ejecución global se cree. El uso es el siguiente:
if (array.isArray (valor)) {// realizar algunas operaciones en la matriz}2. Método de conversión
Todos los objetos tienen métodos tolocaleString (), toString () y valueOf (). El método toString () de la matriz se llama toString () para devolver una cadena separada por comas empalmada de la forma de cadena de cada valor en la matriz. Por ejemplo:
Var Cities = ["Shanghai", "Beijing", "Shenzhen"]; alerta (CITIES.ToString ()); // shanghai, beijing, shenzhenert (ciudad.valueof ()); // Shanghai, Beijing, Shenzhenert (ciudades); // Shanghai, Beijing, Shenzhenert (ciudades); // Shanghai, Beijing, Shenzhen
Nota: Dado que alerta () necesita recibir parámetros de cadena, llamará al método ToString () en segundo plano, por lo que obtendrá el mismo resultado de llamar al método ToString () directamente.
Además, el método TOLOCALECRING () a menudo devuelve el mismo valor que ToString () y ValueOf (). La diferencia es que para obtener el valor de cada elemento, se llama el método tolocaleString () de cada elemento , en lugar del método toString (). Por ejemplo:
var p1 = {tolocaleString: function () {return "p1 tolocaleString"; }, toString: function () {return "p1 toString"; }}; var p2 = {tolocaleString: function () {return "p2 tolocaleString"; }, toString: function () {return "p2 toString"; }}; var p = [p1, p2]; alerta (p); alerta (p.ToString ()); alerta (p.tolocaleString ());El resultado muestra que el método de tostración se llama en la primera y segunda línea, y el método TolocalEstring se llama en la tercera línea.
Los métodos TOLOCALECTRING (), ToString () y ValueOf () heredados por la matriz devolverán los elementos de la matriz en forma de cadenas separadas por comas de forma predeterminada. Con el método Join (), puede usar diferentes caracteres para dividir la cadena y luego devolver la cadena que contiene todos los elementos de matriz.
Var Cities = ["Shanghai", "Beijing", "Shenzhen"]; alerta (Ciudades); // shanghai, beijing, shenzhenert (ciudad.join (",")); // shanghai, beijing, shenzhenert (ciudad.join ("|")); // shanghai | beijing | shenzhen3. Método de pila
Una pila es una última estructura de datos (LIFO), y la inserción y eliminación de elementos de datos en la pila solo puede ocurrir en la parte superior de la pila. JavaScript Arrays proporciona métodos Push () y POP () para implementar un comportamiento similar a la pila.
Método Push ()
Puede tomar cualquier cantidad de parámetros, agregarlos al final de la matriz y modificar la longitud de la matriz.
var params = new array (); var count = params.push ("a", "b"); alerta (params); // a, Balert (recuento); // 2Del ejemplo anterior, podemos ver que el número de términos insertados devueltos por el método push ().
método pop ()
Retire el último elemento del final de la matriz, reduzca la longitud de la matriz y devuelva el elemento eliminado.
var params = new array (); var count = params.push ("a", "b", "c"); var item = params.pop (); alerta (item); // calendART (params.length); // 24. Método de cola
La regla de acceso para la estructura de datos de la cola es en primer lugar (FIFO), es decir, los elementos se agregan desde el final de la cola y los elementos se eliminan del extremo frontal de la cola.
método shift ()
El método shift () se proporciona en JavaScript, que elimina el primer elemento en la matriz y devuelve el elemento, y al mismo tiempo modifica el atributo de longitud de la matriz.
var params = new array (); var count = params.push ("a", "b", "c"); var item = params.hift (); // Obtener la primera alerta de elemento (elemento); // aalert (params.length); // 2método unshift ()
JavaScript también proporciona el método Unshift (), que puede agregar cualquier elemento al extremo frontal de la matriz y devolver la longitud de la nueva matriz.
var params = new array (); var count1 = params.unshift ("a"); alert (count1); // 1Alert (params); // avar count2 = params.unshift ("b"); alert (count2); // 2Alert (params); // b, avar count3 = params.unshift ("c", "d"); alerta (params); // C, D, B, ASe observó que si hay múltiples términos en Unshift () a la vez, insertará estos términos en la matriz en orden, es decir, el primer parámetro se inserta en el frente. Como en el ejemplo anterior, "A" se inserta por primera vez, "B" se inserta por segunda vez, y hay múltiples términos cuando la tercera vez, pero el pedido es C delante y D en la parte posterior.
5. Reorden Método
Hay dos métodos utilizados directamente para reordenar en la matriz.
método reverse ()
El método reverse () invertida el orden de los elementos de matriz.
valores var = [1,2,3,4,5]; valores.reverse (); alerta (valores); // 5,4,3,2,1
Método sort ()
Por defecto, el método Sort () organiza elementos de matriz en orden ascendente. Para lograr la clasificación, el método Sort () llama al método de transformación ToString () de cada elemento de matriz, y luego compara la cadena resultante. Por lo tanto, el método sort () compara cadenas .
valores var = [3,5,53,2,34]; valores.sort (); alerta (valores); // 2,3,34,5,53
Sin embargo, podemos decir que esta clasificación no tiene sentido, y lo que necesitamos es ordenar los valores numéricos. El método sort () puede recibir una función de comparación como un argumento para especificar las reglas de clasificación.
La función de comparación recibe dos parámetros, devuelve un número negativo si el primer parámetro debe ser antes del segundo parámetro, devuelve 0 si los dos parámetros son iguales y devuelve un número positivo si el primer parámetro es después del segundo parámetro.
función compare (value1, value2) {if (value1 <value2) {return -1; } else if (value1> value2) {return 1; } else {return 0; }} var valores = [3,5,53,2,34]; valores.sort (comparar); alerta (valores); // 2,3,4,34,536. Método de operación
método concat ()
Se puede crear una nueva matriz basada en todos los elementos en la matriz actual. Este método crea una copia de la matriz actual, agrega los parámetros al final de la copia y devuelve la matriz recién construida. Si se pasan una o más matrices al método concat (), cada elemento en la matriz se agrega a la matriz.
varillas var = ["a", "b", "c"]; var arrays2 = arrays.concat ("d", ["e", "fe"]); alerta (matrices); // a, b, calert (matrices2); // A, B, C, D, E, Fmétodo slice ()
Crea una nueva matriz basada en uno o más elementos en la matriz actual. El método SLICE () puede recibir uno o dos parámetros, es decir, las posiciones de inicio y finalización del elemento que se devolverán . Cuando solo hay un parámetro, devuelve todos los elementos desde el elemento de inicio hasta el final de la matriz. Cuando hay dos parámetros, devuelve el elemento entre la posición de inicio y la posición final (excluyendo el elemento final). El método Slice () no afectará la matriz original.
Var Cities = ["Beijing", "Shanghai", "Shenzhen", "Guangzhou"]; var Cities2 = Cities.slice (1); var Cities3 = Cities.slice (1,3); alerta (Ciudades2); // Shanghai, Shenzhen, Guangzhou Alert (CITies3); // Shanghai, Shenzhen
método de empalme ()
El método Splice () se usa principalmente para insertar elementos en el medio de la matriz, y hay 3 formas de usarlo:
• Eliminar puede eliminar cualquier número de elementos, especificar 2 parámetros: el primer elemento que se eliminará y el número de elementos que se eliminarán, como: Splice (1,3) eliminará los elementos segundo, tercero y cuarto en la matriz
var ciudades = ["beijing", "shanghai", "shenzhen", "guangzhou"]; ciudad.splice (1,3); alerta (ciudades); // Beijing
• Insertar Puede insertar cualquier cantidad de elementos en la posición especificada. Especifique 3 parámetros: posición inicial, 0 (número de elementos que se eliminarán) y el elemento que se insertará
var ciudades = ["beijing", "shanghai", "shenzhen", "guangzhou"]; ciudad.splice (1,0, "Hongkong"); alerta (ciudades); // Beijing, Hongkong, Shanghai, Shenzhen, Guangzhou
• Reemplace los elementos que puedan reemplazar la posición especificada. Especifique 3 parámetros: posición inicial, elemento que se eliminará y cualquier elemento a insertar.
var ciudades = ["beijing", "shanghai", "shenzhen", "guangzhou"]; ciudad.splice (1,2, "Hongkong"); alerta (ciudades); // Beijing, Hongkong, Guangzhou
7. Método de posición
Hay dos métodos posicionales en el método JavaScript: indexOf () y el método LastIndexof (). Ambos métodos reciben dos parámetros: el elemento que se encuentra y el índice (opcional) que indica la ubicación del punto de partida de búsqueda.
El método indexOf () significa mirar hacia atrás desde el comienzo de la matriz, mientras que el LastIndexof () comienza desde el final de la matriz. Todos devuelven la posición del artículo que se encuentra en la matriz, y -1 si no se encuentran. Congruente se usa al comparar el primer parámetro con cada elemento en la matriz.
var nums = [1,2,3,4,5,6]; alerta (nums.indexof (3)); // 2Alert (nums.lastIndexof (5)); // 4alert (nums.indexof (3,1)); // 2alert (nums.lastIndexof (4,4)); // 3
8. Método de iteración
JavaScript proporciona 5 métodos iterativos para matrices. Cada método recibe dos parámetros: la función que se ejecutará en cada elemento y (opcional) el objeto de alcance que ejecuta la función, lo que afecta el valor de esto. Parámetros que deben pasar en: el valor del elemento de la matriz, la posición del elemento en la matriz y el objeto de matriz en sí.
• Cada (): ejecuta una función dada en cada elemento en la matriz, y si el número de filas devuelve verdadero para cada elemento, devuelve verdadero.
• Filtro (): ejecute una función dada en cada elemento en la matriz y devuelva una matriz compuesta de elementos que devuelvan verdaderos.
• foreach (): ejecuta una función dada en cada elemento en la matriz sin devolver un valor
• MAP (): una función que consiste en ejecutar una función dada en cada elemento en la matriz, devolviendo el resultado de cada llamada de función.
• Algunos (): ejecuta una función dada en cada elemento en la matriz. Si algún elemento devuelve verdadero, la función devuelve verdadero.
Ninguno de los métodos anteriores modificará los valores contenidos en la matriz.
9. Método de fusión
Hay dos métodos para fusionar matrices en JavaScript: Reduce () y Reduceright (). Ambos métodos iteran sobre todos los elementos de la matriz y luego construyen un valor final devuelto. Donde, el método Reder () comienza desde el primer elemento de la matriz, y Reduceright () comienza desde el último elemento de la matriz.
Ambos pueden recibir dos parámetros: una función llamada en cada elemento y (opcional) como el valor inicial de la base de fusión. La función pasada para reducir () y reducir () recibe 4 parámetros: el valor anterior, el valor actual, el índice del elemento y el objeto de matriz. Cualquier valor devuelto por esta función se pasará automáticamente al siguiente elemento como el primer parámetro. La primera iteración ocurre en el segundo término de la matriz, por lo que el primer parámetro es el primer término de la matriz, y el segundo parámetro es el segundo término de la matriz.
valores var = [1,2,3,4,5]; var sum = valores.reduce (function (anterior, cur, index, array) {return prev+cur;}); alerta (suma); // 15La primera vez que se ejecuta la función de devolución de llamada, antes es 1 y CUR es 2. La segunda vez, anterior es 3 (1+2), CUR es 3 (valor del tercer término de la matriz), sabiendo que se accede a cada elemento.
Reduceright () tiene funciones similares, pero la dirección es opuesta.
El análisis completo de JavaScript: Tipo de matriz es todo el contenido que comparto con usted. Espero que pueda darle una referencia y espero que pueda apoyar más a Wulin.com.