Antes de la introducción, arroje una pregunta: ¿Cómo combinar múltiples matrices en una matriz?
Las siguientes sesiones de intercambio se dividen en las siguientes subsecciones:
1. Introducción básica al método concat
2. Siente el método concat del ejemplo
1. Introducción básica al método concat
El método concat se utiliza para fusionar múltiples matrices. Agrega el miembro de la nueva matriz al final de la matriz original, y luego devuelve una nueva matriz, la matriz original permanece sin cambios.
console.log ([]. Concat ([1], [2], [3])); // [1, 2, 3] console.log ([]. Concat ([[1], [2], [3]])); // [1], [2], [3]] console.log ([]. Concat (4, [[5,6], [7]])); // [4, [5, 6], [7]]
En el código anterior, el primer valor de retorno es fusionar una matriz vacía con tres matrices [1], [2], [3] en una matriz, devolviendo así [1, 2, 3]. El segundo es combinar una matriz vacía con un número bidimensional. Los miembros de la matriz bidimensional son [1], [2], [3], entonces [[1], [2], [3]] se devuelven. Tenga en cuenta que la matriz bidimensional devuelta. El tercer ejemplo es el mismo. La comprensión de los conceptos es muy importante aquí, es decir, agregar miembros de la nueva matriz a la cola de la matriz original.
Además de aceptar matrices como parámetros, Concat también puede aceptar otros tipos de valores como parámetros. Se utilizarán como nuevos elementos, agregando el final de la matriz.
console.log ([]. Concat (1,2,3)); // [1,2,3]; // equivalente a console.log ([]. Concat (1, [2,3])); // [1,2,3]; console.log ([]. Concat ([1], [2,3])); // [1,2,3];
Aunque aquí hay menos contenido, se ve bastante simple. Pero realmente no es fácil de entender.
2. Siente el método concat del ejemplo
Después de hablar sobre el conocimiento básico, déjame mostrarte una pregunta que he encontrado recientemente. El título original es así.
Puedes ver lo que significa mirando los ejemplos.
Una de las soluciones a esta pregunta es:
var flatten = function (arr) {return [] .concat.apply ([], arr);};Esta función simple puede realizar la función de fusionar elementos en una matriz. Pero cuando entiendo este valor de retorno, surge un problema.
Pregunta: ¿Por qué hay alguna diferencia entre usar el método Aplicar y no usar el método Aplicar?
console.log ([]. concat.apply ([], [[1], [2], [3]])); // [1, 2, 3] console.log ([]. Concat ([[1], [2], [3]])); // [[1], [2], [3]]
En el código anterior, también se agrega una nueva matriz a la cola en una matriz vacía, y la primera devuelve [1,2,3]. El segundo es una matriz bidimensional.
Después de un período de lanzamiento y persecución, finalmente entendí las diferentes razones.
Primero, cuando llamamos al método de instancia concat en una matriz vacía, pasamos los parámetros en concat y empujamos al final de la matriz. Es decir, la matriz vacía se fusiona con la matriz más externa de la matriz aprobada, y luego se devuelve una nueva matriz.
console.log ([]. Concat (1,2,3)); // [1, 2, 3] console.log ([]. Concat ([1], [2], [3])); // [1, 2, 3] console.log ([]. Concat ([[1], [2], [3]])); // [1], [2], [3]] console.log ([]. Concat ([[1], [2], [3]])); // [[1], [2], [3]]]
En el código anterior, cambia gradualmente de varias matrices a matrices unidimensionales, matrices bidimensionales y matrices tridimensionales.
En la explicación detallada y el artículo de llamada de llamada, aplicar y vincular métodos en JavaScript, se menciona que la función del método de aplicación es similar al método de llamada, y también cambia este punto (el alcance donde se ejecuta la función) y luego llama a la función en el alcance especificado. La función también se ejecutará de inmediato. La única diferencia es que recibe una matriz como argumento cuando se ejecuta la función.
El primer parámetro del método de aplicación también es el objeto al que esto quiere señalar. Si se establece en nulo o indefinido o esto, es equivalente a especificar un objeto global. El segundo parámetro es una matriz, y todos los miembros de la matriz se usan como parámetros a su vez, y la función original se pasa cuando se le llama. Los parámetros de la función original deben agregarse uno por uno en el método de llamada, pero en el método de aplicación, deben agregarse como una matriz.
console.log ([]. concat.apply ([], [[1], [2], [3]])); // [1, 2, 3] console.log ([]. Concat ([[1], [2], [3]])); // [[1], [2], [3]]
Como se puede ver en el código, la primera pieza de código llama al método concat primero en la matriz vacía. La función de este método es agregar miembros de la nueva matriz al final de la matriz original. Se llama nuevamente el método de aplicación, y se pasa el primer parámetro, especificando el alcance del objeto que se ejecuta. La función del segundo parámetro es pasar a todos los miembros de la matriz como parámetros a la vez y pasarlos a la matriz cuando se les llama.
Por lo tanto, cuando los métodos concat y aplicados se usan al mismo tiempo, las funciones de los dos métodos se superpusirán, que es un fenómeno diferente que usar Concat solo. Veamos un ejemplo.
console.log ([]. Concat ([1,2,3])); // [1, 2, 3] console.log ([]. Concat.apply ([], [[1], [2], [3]])); // [1, 2, 3] console.log ([]. Concat ([[1], [2], [3]])); // [1], [2, [3]] console.log ([]. Concat ([[1], [2], [3]])); // [[1], [2], [3]] console.log ([]. Concat ([[1], [2], [3]])); // [[1], [2], [3]] console.log ([]. Concat ([[1], [2], [3]]]); // [[1], [2], [3]] Console.log ([]. Concat ([[1], [2], [2], [3]]] Console.log ([]. Concat.apply ([], [[[1], [2], [3]]]); // [[1], [2]]]]]] [3]]]
En el código anterior, el método Concat combina la mayor cantidad de números y luego fusiona la siguiente matriz de capa sobre la base de la fusión.
console.log ([]. concat.apply ([], [[1], [2], [3]])); // [1, 2, 3] // equivalente a console.log ([]. Concat (1,2,3))); // [1,2,3]
Resumir:
1. Al usar solo el método Concat, los miembros de la nueva matriz se agregarán al final de la matriz original.
2. Al usar el método Aplicar para especificar este puntero del método Concat, las funciones de los dos métodos se superpondrán.
3. Métodos para fusionar elementos de matriz:
var flatten = function (arr) {return [] .concat.apply ([], arr);}; var flatten = function (array) {return array.reduce (function (a, b) {return a.concat (b);}, [])}Lo anterior es el método para fusionar matrices utilizando el método Concat introducido por el editor. Espero que te sea útil. Si tiene alguna pregunta, déjame un mensaje y el editor le responderá a tiempo. ¡Muchas gracias por su apoyo al sitio web de Wulin.com!