Este ejemplo resume las técnicas operativas comunes para las matrices de JavaScript. Compártelo para su referencia. Los detalles son los siguientes:
Prefacio
Creo que todos están acostumbrados al uso de operaciones relacionadas con la matriz comúnmente utilizadas en bibliotecas de clase como jQuery o subrayar, como $ .IsArray, _. Algunos, _.find y otros métodos. Aquí no hay nada más que un poco más de envoltorios para las operaciones nativas de matriz JS.
Aquí resumiremos principalmente las API comunes para las operaciones de matriz de JavaScript. Creo que será muy útil para todos resolver los problemas del programa.
1. Naturaleza
Una matriz en JavaScript es un objeto especial, y el índice utilizado para representar un desplazamiento es una propiedad del objeto, y el índice puede ser un entero. Sin embargo, estos índices numéricos se convierten internamente al tipo de cadena, porque el nombre del atributo en el objeto JavaScript debe ser una cadena.
2. Operación
1 Determinar el tipo de matriz
Copie el código de la siguiente manera: var array0 = []; // literal
var array1 = new Array (); // constructor
// NOTA: El método Array.IsArray no es compatible con IE6/7/8
alerta (array.isArray (array0));
// Considere la compatibilidad, se puede usar
alerta (array1 instancia de matriz);
// o
alert (objeto.prototype.tostring.call (array1) === '[array de objetos]');
2 matriz y cadena
Muy simple: Convierta de una matriz a una cadena, use unirse; Convierta de una cadena a una matriz, use Split.
Copie el código de la siguiente manera: // Únete - Convierte de matriz a cadena, usa unir
console.log (['Hola', 'Mundo']. Join (',')); // Hola Mundo
// Split - Convertir de cadena a matriz, usando Split
console.log ('Hello World'.split (' ')); // ["Hola Mundo"]
3 Encuentra elementos
Creo que todos usan a menudo el índice de tipo de cadena, pero rara vez sabe que el índice de una matriz también se puede usar para encontrar elementos.
Copie el código de la siguiente manera: // indexOf - busque elementos
console.log (['ABC', 'BCD', 'CDE']. IndexOf ('BCD')); // 1
//
var objinarray = [
{
Nombre: 'Rey',
Pase: '123'
},
{
Nombre: 'King1',
Pase: '234'
}
];
console.log (objinarray.indexof ({
Nombre: 'Rey',
Pase: '123'
})); // -1
var elementofarray = objinarArray [0];
console.log (objinarray.indexof (elementofarray)); // 0
De lo anterior, podemos ver que para una matriz que contiene objetos, el método indexOf no obtiene los resultados de búsqueda correspondientes a través de una comparación profunda, sino que solo compara las referencias con los elementos correspondientes.
4 conexiones de matriz
Cuando use Concat, tenga en cuenta que se generará una nueva matriz después de usar Concat.
La copia del código es la siguiente: var array1 = [1, 2, 3];
var array2 = [4, 5, 6];
var array3 = array1.concat (array2); // Después de implementar la conexión de matriz, se creará una nueva matriz
console.log (array3);
5 categorías de operaciones de lista
Para agregar elementos, puede usar Push y Deshift respectivamente, y para eliminar elementos, puede usar POP y cambiar respectivamente.
Copie el código de la siguiente manera: // push/pop/shift/unshift
varilla var = [2, 3, 4, 5];
// Agregar al final de la matriz
array.push (6);
console.log (matriz); // [2, 3, 4, 5, 6]
// Agregar al encabezado de la matriz
array.unshift (1);
console.log (matriz); // [1, 2, 3, 4, 5, 6]
// Eliminar el último elemento
var elementofpop = array.pop ();
console.log (elementOfPop); // 6
console.log (matriz); // [1, 2, 3, 4, 5]
// Eliminar el primer elemento
var elementofshift = array.hift ();
console.log (ElementOfShift); // 1
console.log (matriz); // [2, 3, 4, 5]
6 Método de empalme
Dos usos principales:
① Agregar y eliminar elementos desde el medio de la matriz
② Obtenga una nueva matriz de la matriz original
Por supuesto, los dos usos se sintetizan en un gas. Algunos escenarios se centran en el propósito uno, mientras que otros se centran en el propósito dos.
Agregue y elimine elementos de la posición media de la matriz. El método de empalme agrega elementos a la matriz. Se requieren los siguientes parámetros.
① Inicio de inicio (es decir, donde desea comenzar a agregar elementos)
② El número de elementos que deben eliminarse o el número de elementos extraídos (el parámetro se establece en 0 al agregar elementos)
③ Elementos que desea agregar a la matriz
La copia del código es la siguiente: 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]
// Luego realice la operación de eliminación o extraiga una nueva matriz
var newnums = nums.splice (3, 4);
console.log (nums); // [1, 2, 3, 8, 9]
console.log (newnums); // [4, 5, 6, 7]
7 clases
La principal introducción a los métodos de reversa y clasificación. La inversión de la matriz usa Reverse, el método de clasificación se puede usar no solo para una clasificación simple, sino también para una clasificación compleja.
Copie el código de la siguiente manera:/ Invertir la matriz
varilla var = [1, 2, 3, 4, 5];
array.reverse ();
console.log (matriz); // [5, 4, 3, 2, 1]
Primero ordenamos la matriz de elementos de cadena
var arrayofnames = ["David", "Mike", "Cynthia", "Clayton", "Bryan", "Raymond"];
arrayofnames.sort ();
console.log (arrayofnames); // ["Bryan", "Clayton", "Cynthia", "David", "Mike", "Raymond"]
Ordenamos matrices de elementos numéricos
Copie el código de la siguiente manera:/ Si el elemento de matriz es de tipo numérico, el resultado de clasificación del método sort () no será satisfactorio.
var nums = [3, 1, 2, 100, 4, 200];
nums.sort ();
console.log (nums); // [1, 100, 2, 200, 3, 4]
El método de clasificación clasifica elementos en el orden del diccionario, por lo que supone que los elementos son todos los tipos de cadenas, por lo que incluso si los elementos son tipos numéricos, se consideran tipos de cadenas. En este momento, puede pasar una función de comparación de tamaño al llamar al método. Al clasificar, el método sort () comparará los tamaños de dos elementos en la matriz en función de la función, determinando así el orden de toda la matriz.
Copie el código de la siguiente manera: var compare = function (num1, num2) {
return num1> num2;
};
nums.sort (comparar);
console.log (nums); // [1, 2, 3, 4, 100, 200]
var objinarray = [
{
Nombre: 'Rey',
Pase: '123',
Índice: 2
},
{
Nombre: 'King1',
Pase: '234',
Índice: 1
}
];
// orden ascendente según el índice para elementos de objeto en la matriz
var compare = function (o1, o2) {
return o1.index> o2.index;
};
objinarray.sort (comparar);
console.log (objinarray [0] .index <objinarray [1] .index); // verdadero
Método de 8 iteradores
Principalmente incluye foreach y todos, algunos y mapa, filtrar
Creo que todos pueden hacerlo foreach, y presentaré principalmente los otros cuatro métodos.
Cada método acepta una función con un valor de retorno booleano, que se utiliza para cada elemento en la matriz. Si la función devuelve verdaderas para todos los elementos, el método devuelve verdadero.
La copia del código es la siguiente: var nums = [2, 4, 6, 8];
// método iterador que no genera nuevas matrices
var iseven = function (num) {
devolución num % 2 === 0;
};
// Si todos son números uniformes, devuelva verdadero
console.log (nums.every (iseven)); // verdadero
Algún método también acepta una función con un valor de retorno booleano. Mientras haya un elemento que haga que la función devuelva verdaderas, el método devuelve verdadero.
var iseven = function (num) {
devolución num % 2 === 0;
};
var nums1 = [1, 2, 3, 4];
console.log (nums1. veces (iseven)); // verdadero
Los métodos de mapa y filtro pueden producir nuevas matrices. La nueva matriz devuelta por MAP es el resultado de aplicar una función al elemento original. como:
Copie el código de la siguiente manera: var up = function (grado) {
grado de retorno += 5;
}
Grados var = [72, 65, 81, 92, 85];
var newgrades = grados.ma
El método de filtro es muy similar a cada método, que pasa en una función con un valor de retorno booleano. A diferencia de cada método (), cuando la función se aplica a todos los elementos en la matriz y el resultado es verdadero, el método no devuelve verdadero, pero devuelve una nueva matriz que contiene los elementos cuyo resultado es verdadero después de que se aplica la función.
Copie el código de la siguiente manera: var iseven = function (num) {
devolución num % 2 === 0;
};
var isodd = function (num) {
devuelve num % 2! == 0;
};
var nums = [];
para (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 (probabilidades); // [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
3. Resumen
Lo anterior también tiene el problema de que algunos métodos no son compatibles con los navegadores de bajo nivel, y se deben utilizar otros métodos para la implementación compatible.
Estos son métodos comunes que pueden no ser fáciles de pensar para todos. Todos podrían prestar más atención.
Espero que este artículo sea útil para la programación de JavaScript de todos.