Matriz
1. Introducción
Una matriz es una colección ordenada de valores. Cada valor se llama elemento, y cada elemento tiene una posición en la matriz, representada por un número, llamado índice. Las matrices JavaScript no tienen ningún tipo: los elementos de matriz pueden ser de cualquier tipo, y diferentes elementos en la misma matriz también pueden tener diferentes tipos. -"Guía autorizada a JavaScript (Sexta Edición)"
2. Definición
La copia del código es la siguiente:
Var Names = New Array ("Zhang San", "li si", "wang wu");
//o
Var Names = ["Zhang San", "li si", "wang wu"];
3. Propiedades
Longitud: representa la longitud del elemento en la matriz.
4. Método de ejemplo
Métodos comunes:
1) Unchift (): inserte el elemento en la cabeza de la matriz
2) Shift (): Elimine y devuelva el primer elemento de la matriz
3) Push (): Inserte el elemento al final de la matriz
4) Pop (): Retire y devuelva el último elemento de la matriz
4.1 Concat (): Conecte elementos a la matriz. La matriz original no se modificará y se devolverá la nueva matriz.
parámetro:
①Value1, Value2 ... Valuen: cualquier número de valores
Valor de retorno:
{Array} Una nueva matriz que contiene la matriz original y los elementos recientemente agregados.
Ejemplo:
La copia del código es la siguiente:
var demoArray = ['a', 'b', 'c'];
var demoArray2 = demoArray.concat ('e');
console.log (demoArray); // => demoArray: ['a', 'b', 'c'] La matriz original no cambia
console.log (demoArray2); // => ['a', 'b', 'c', 'e']
4.2 Cada (): atraviese los elementos a su vez para determinar si cada elemento es verdadero
parámetro:
① Función (valor, índice, self) {}: cada elemento usará esta función para determinar si es verdadero. Cuando se juzga que uno es falso, el recorrido se terminará inmediatamente.
Valor: el elemento de la matriz transversal
Índice: número de elemento
Self: Array en sí mismo
Valor de retorno:
{Boolean}: return true solo si cada elemento es verdadero; Si uno es falso, devuelve falso.
Ejemplo:
La copia del código es la siguiente:
var demoArray = [1, 2, 3];
var rs = demoArray.every (function (valor, índice, self) {
valor de retorno> 0;
});
console.log (rs); // => verdadero
4.3 Filtro (): atraviese los elementos a su vez y devuelva una nueva matriz que contenga elementos que cumplan con los criterios.
parámetro:
① Función (valor, índice, self) {}: cada elemento llama a esta función a su vez, devolviendo una nueva matriz que contiene elementos que cumplan con los criterios.
Valor: el elemento de la matriz transversal
Índice: número de elemento
Self: Array en sí mismo
Valor de retorno:
{Matriz} Una nueva matriz que contiene elementos que coinciden con los criterios
Ejemplo:
La copia del código es la siguiente:
var demoArray = [1, 2, 3];
var rs = demoArray.filter (function (valor, índice, self) {
valor de retorno> 0;
});
console.log (rs); // => [1, 2, 3]
4.4 foreach (): elementos transversales en secuencia y ejecutar la función especificada; Sin valor de retorno.
parámetro:
① Función (valor, índice, self) {}: cada elemento llama a esta función a su vez
Valor: el elemento de la matriz transversal
Índice: número de elemento
Self: Array en sí mismo
Valor de retorno: ninguno
Ejemplo:
La copia del código es la siguiente:
var demoArray = [1, 2, 3];
DemoArray.ForEach (función (valor, índice, self) {
console.log (valor); // => Salida en secuencia: 1 2 3
});
4.5 IndexOf (): Encuentre elementos coincidentes en una matriz. Si no existe un elemento coincidente, regrese -1. Use el operador "===" cuando busque, por lo que debe distinguir entre 1 y '1'
parámetro:
① Valor: el valor que se encuentra en la matriz.
② Intar: la posición del número de serie que comienza a buscar, si se omite, es 0.
Valor de retorno:
{Int}: Devuelve el primer valor coincidente en la matriz. Si no existe, return -1
Ejemplo:
La copia del código es la siguiente:
['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: el método de coincidencia '===' utilizado
4.6 unir (): emplome todos los elementos en la matriz en una cadena a través de un delimitador.
parámetro:
①Sparator {String}: el separador entre cada elemento. Si se omite, está separado por la coma inglesa ',' por defecto.
Valor de retorno:
{String}: una cadena empalmada por cada elemento con un esparator como separador.
Ejemplo:
La copia del código es la siguiente:
['A', 'B', 'C']. Join (); // => 'A, B, C'
['A', 'B', 'C']. Join ('-'); // => 'AB-C'
4.7 LastIndexof: busque reversamente elementos coincidentes en una matriz. Si no existe un elemento coincidente, regrese -1. Use el operador "===" cuando busque, por lo que debe distinguir entre 1 y '1'
parámetro:
① Valor: el valor que se encuentra en la matriz.
② Instaría: la posición del número de secuencia que comienza a buscar. Si se omite, comience a buscar desde el último elemento.
Valor de retorno:
{Int}: comience a encontrar el primer valor coincidente en la matriz de derecha a izquierda. Si no existe, return -1
Ejemplo:
La copia del código es la siguiente:
['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: el método de coincidencia '===' utilizado
4.8 MAP (): itera y calcule cada elemento en secuencia, y devuelva la matriz calculada de elementos
parámetro:
① Función (valor, índice, self) {}: cada elemento llama a esta función a su vez para devolver el elemento calculado
Valor: el elemento de la matriz transversal
Índice: número de elemento
Self: Array en sí mismo
Valor de retorno:
{Matriz} una nueva matriz que contiene incluso buenos elementos
Ejemplo:
La copia del código es la siguiente:
[1, 2, 3] .map (función (valor, índice, self) {
valor de retorno * 2;
}); // => [2, 4, 6]
4.9 Pop (): Elimine y devuelva el último elemento de la matriz
Parámetros: ninguno
Valor de retorno:
{Objeto} el último elemento de la matriz; Si la matriz está vacía, regrese indefinida
Ejemplo:
La copia del código es la siguiente:
var demoArray = ['a', 'b', 'c'];
demoArray.pop (); // => c
demoArray.pop (); // => b
demoArray.pop (); // => A
demoArray.pop (); // => indefinido
4.10 Push (): Agregue elementos al final de la matriz
parámetro:
①Value1, Value2 ... Valuen: Agregue cualquier número de valores al final de la matriz
Valor de retorno:
{int} la nueva longitud de la matriz
Ejemplo:
La copia del código es la siguiente:
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 Reverse (): Invierta el orden de los elementos de matriz.
Parámetros: ninguno
Valor de retorno: Ninguno (orden de elemento invertido en la matriz original).
Ejemplo:
La copia del código es la siguiente:
var demoArray = ['a', 'b', 'c', 'd', 'e'];
demoArray.Reverse ();
console.log (demoArray); // => ["e", "d", "c", "b", "a"]
4.12 Shift (): Elimine y devuelva el primer elemento de la matriz
Parámetros: ninguno
Valor de retorno:
{Objeto} el primer elemento de la matriz; Si la matriz está vacía, se devuelve indefinido.
Ejemplo:
La copia del código es la siguiente:
var demoArray = ['a', 'b', 'c'];
DemoArray.hift (); // => A
DemoArray.hift (); // => b
DemoArray.hift (); // => c
DemoArray.hift (); // => indefinido
4.13 Slice (StartIndex, EndIndex): Devuelve parte de la matriz.
parámetro:
① StartIndex: el número de secuencia al principio; Si es un número negativo, significa que el cálculo comienza desde el final, -1 representa el último elemento, -2 es el segundo al último, y así sucesivamente.
②EndeDex: el último número de secuencia del elemento al final, si no se especifica, el final es el final. El elemento interceptado no contiene el elemento con el número de secuencia aquí, y el final es el elemento anterior con el número de secuencia aquí.
Valor de retorno:
{Array} Una nueva matriz que contiene todos los elementos desde StartIndex hasta el elemento anterior del EndIdex.
Ejemplo:
La copia del código es la siguiente:
[1, 2, 3, 4, 5, 6] .slice (); // => [1, 2, 3, 4, 5, 6]
[1, 2, 3, 4, 5, 6] .lice (1); // => [2, 3, 4, 5, 6]: a partir del número de serie 1
[1, 2, 3, 4, 5, 6] .lice (0, 4); // => [1, 2, 3, 4]: intercepta el elemento del número de serie 0 al número de serie 3 (el anterior número de serie 4)
[1, 2, 3, 4, 5, 6] .lice (-2); // => [5, 6]: interceptar los siguientes 2 elementos
4.14 sort (opt_orderfunc): ordenar de acuerdo con ciertas reglas
parámetro:
① Opt_orderFunc (v1, v2) {function}: función de regla de clasificación opcional. Si se omite, las letras del elemento se clasificarán de pequeña a grande.
V1: El elemento anterior está atravesado.
V2: Los siguientes elementos están atravesados.
Reglas de clasificación:
Compare V1 y V2 y devuelva un número para representar las reglas de clasificación de V1 y V2:
Menos de 0: V1 es menor que V2, V1 está por delante de V2.
Igual a 0: V1 es igual a V2, V1 está por delante de V2.
Mayor que 0: V1 es mayor que V2, V1 está detrás de V2.
Valor de retorno: Ninguno (operaciones de clasificación en la matriz original).
Ejemplo:
La copia del código es la siguiente:
[1, 3, 5, 2, 4, 11, 22] .sort (); // => [1, 11, 2, 22, 3, 4, 5]: todos los elementos se convierten en caracteres, y los caracteres de 11 son antes de 2
[1, 3, 5, 2, 4, 11, 22] .sort (función (v1, v2) {
return v1 - v2;
}); // => [1, 2, 3, 4, 5, 11, 22]: ordenado de pequeño a grande
[1, 3, 5, 2, 4, 11, 22] .sort (función (v1, v2) {
retorno - (v1 - v2); // Inverso, puede convertir de gran a pequeño
}); // => [22, 11, 5, 4, 3, 2, 1]
4.15 empalme (): inserte y elimine elementos de matriz
parámetro:
① Inicio {int}: el número de secuencia inicial para comenzar a insertar, eliminar o reemplazar.
②Deletecount {int}: el número de elementos que se eliminarán, inicie el cálculo desde el inicio.
③Value1, value2 ... valuen {objeto}: parámetro opcional, indicando el elemento que se insertará y comienza a insertar desde el inicio. Si el parámetro ② no es 0, realice la operación de eliminación primero y luego realice la operación de inserción.
Valor de retorno:
{Array} Devuelve una nueva matriz que contiene elementos eliminados. Si el parámetro ② es 0, significa que no se elimina ningún elemento y se devuelve una matriz vacía.
Ejemplo:
La copia del código es la siguiente:
// 1. Eliminar
var demoArray = ['a', 'b', 'c', 'd', 'e'];
var demoArray2 = demoArray.splice (0, 2); // Eliminar 2 elementos a partir de 0 desde el número de secuencia y devolver una matriz que contiene los elementos eliminados: ['A', 'B']
console.log (demoArray2); // => ['A', 'B']
console.log (demoArray); // => ['c', 'd', 'e']
// 2. Insertar
var demoArray = ['a', 'b', 'c', 'd', 'e'];
var demoArray2 = demoArray.splice (0, 0, '1' ',' 2 ',' 3 '); // ② El parámetro es 0, devuelve una matriz vacía
console.log (demoArray2); // => []
console.log (demoArray); // => ['1', '2', '3', 'a', 'b', 'c', 'd', 'e']
// 3. Eliminar primero y luego insertar
var demoArray = ['a', 'b', 'c', 'd', 'e'];
// Cuando el parámetro ② no es 0, luego realice la operación de deleción primero (elimine 4 elementos con el número de secuencia a partir de 0, devuelva una matriz que contenga los elementos eliminados) y luego realice la operación de inserción
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 (): CUAZA TODOS LOS ELEMENTOS EN LA MATRAY en una cadena a través de una coma en inglés ','.
Parámetros: ninguno
Valor de retorno:
{String} Todos los elementos de la matriz se empaldenan en una cadena por una coma inglesa ',' y se devuelven. Lo mismo es llamar al método Join () sin parámetros.
Ejemplo:
La copia del código es la siguiente:
[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 (): inserte el elemento en la cabeza de la matriz
parámetro:
①Value1, Value2 ... Valuen: Agregue cualquier número de valores al encabezado de la matriz
Valor de retorno:
{int} la nueva longitud de la matriz
Ejemplo:
La copia del código es la siguiente:
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. Método estático
5.1 array.isArray (): determina si el objeto es una matriz
parámetro:
①Value {objeto}: cualquier objeto
Valor de retorno:
{Boolean} Devuelve el resultado del juicio. Cuando es cierto, significa que el objeto es una matriz; Cuando falsa, significa que el objeto no es una matriz
Ejemplo:
La copia del código es la siguiente:
Array.isArray ([]); // => verdadero
Array.isArray (['a', 'b', 'c']); // => verdadero
Array.isArray ('a'); // => falso
Array.isArray ('[1, 2, 3]'); // => falso
6. Operación práctica
6.1 índice
Descripción: Cada elemento tiene una posición en la matriz, representada por un número, llamado índice. El índice comienza desde 0, es decir, el índice del primer elemento es 0, el índice del segundo elemento es 1, y así sucesivamente;
Al obtener un índice que no existe en una matriz, se devuelve indefinido.
Ejemplo:
La copia del código es la siguiente:
var demoArray = ['a', 'b', 'c', 'd', 'e'];
demoArray [0]; // => Obtenga el primer elemento: 'A'
demoArray [0] = 1; // Establecer el primer elemento en 1
console.log (demoArray); // => DemoArray: [1, 'b', 'c', 'd', 'e']
console.log (demoArray [9]); // => Undefined: return sinfinido cuando el índice obtenido no existe
6.2 Para declaraciones
Nota: puede atravesar la matriz uno por uno a través de la declaración para
Ejemplo:
La copia del código es la siguiente:
var demoArray = ['a', 'b', 'c', 'd', 'e'];
para (var i = 0, longitud = demoArray.length; i <longitud; i ++) {
console.log (demoArray [i]); // => Elementos de salida en la matriz uno por uno
}
6.3 Copia superficial
Nota: El tipo de matriz es un tipo de referencia; Cuando la matriz A se copia en la matriz B, la modificación del elemento se realiza a la matriz B, y la matriz A también se modificará.
Ejemplo:
La copia del código es la siguiente:
var demoArraya = ['a', 'b', 'c', 'd', 'e'];
var demoArrayb = demoArraya; // Asignar la matriz A a la matriz B
demoArrayB [0] = 1; // Modificar elementos de la matriz B
console.log (demoArraya); // => [1, 'b', 'c', 'd', 'e']: los elementos de la matriz a también han cambiado
6.4 Copia profunda
Nota: use el método concat () para devolver una nueva matriz; Evite la copia poco profunda, realice operaciones de modificación de elementos en la matriz B, y la matriz A no cambiará.
Ejemplo:
La copia del código es la siguiente:
var demoArraya = ['a', 'b', 'c', 'd', 'e'];
var demoArrayB = demoArraya.concat (); // use el método concat () para devolver una nueva matriz
demoArrayB [0] = 1; // Modificar los elementos de la matriz B
console.log (demoArraya); // => ['a', 'b', 'c', 'd', 'e']: los elementos de la matriz a no han cambiado
console.log (demoArrayB); // => [1, 'b', 'c', 'd', 'e']: el elemento de la matriz B ha cambiado