ECMAScript5 define dos métodos de fusión para matrices: reducir () y reduceright (). Ambos métodos iteran sobre los elementos arbitrarios de la matriz y luego construyen un valor final devuelto. El método Red () comienza desde el primer elemento de la matriz e itera hasta el final de la matriz uno por uno. El método Reduceright () es todo lo contrario. Comienza desde el último elemento de la matriz y avanza al primer elemento.
Ambos métodos reciben dos parámetros: una función solicitada en cada elemento y el valor inicial como base para la 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.
Por ejemplo, podemos usar el método Rede () para encontrar la suma de todos los valores en una matriz.
var nums = [1,2,3,4,5]; var sum = nums.reduce (function (anterior, cur, índice, matriz) {retrun pre + cur;});En el código anterior, la primera vez que se ejecuta la función de devolución de llamada, PREV es 1 y CUR es 2. La segunda vez previa es 3 y CUR es 3. El método Reduce () repetirá este proceso hasta que se acceda a cada elemento en la matriz una vez, y finalmente asigne el resultado devuelto a la suma.
El método Reduceright () es similar al izquierdo y a la derecha, pero se ejecuta en reversa. Por ejemplo:
var nums = [1,2,3,4,5]; var sum = nums.reduceright (function (anterior, cur, índice, matriz) {retrun pre + cur;});En este ejemplo, la primera vez que se ejecuta la función de devolución de llamada, PREV es 5 y CUR es 4. El resultado de la suma final es el mismo que el método Reduce (), ambos 15.
Los navegadores que admiten Reduce () y Reduceright () son: IE9+, Firefox3+, Safari4+, Opera10.5+y Chrome.
Reponer
ECMAScript5 también agrega 2 nuevos métodos para fusionar matrices: reducir () y reduceright ().
Ambos iteran sobre todos los elementos en la matriz
reducir (): iterar uno por uno desde el primer elemento hasta el final.
Reduceright (): comenzando desde el último elemento de la matriz, iterando al primer elemento de la matriz.
Ambos métodos aceptan dos parámetros: la función llamada en cada elemento (los parámetros son: valor anterior, valor actual, índice del elemento, 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 elemento de la matriz,
Por lo tanto, el primer parámetro es el primer elemento de la matriz, y el segundo parámetro es el segundo elemento de la matriz
y como el valor inicial de la base de fusión.
Use el método Rede () para realizar la suma de todos los valores en una matriz, como:
valores var = [1, 2, 3, 4, 5]; var sum = value.reduce (function (previo, cur, índice, matriz) {return prev + cur;}); alerta (suma); // El resultado es el mismo, pero la dirección es el VAR opuesto Sum2 = Values.Reduceright (function (anterior, cur, index, array) {return prev+cur;}); alerta (sum2);Merge Sort es un algoritmo de clasificación efectivo basado en la operación de fusión. Este algoritmo es una aplicación muy típica de divide y conquista.
El método de clasificación de fusión es fusionar dos (o más de dos) tablas ordenadas en una nueva tabla ordenada, es decir, dividir la secuencia para clasificarse en varias subsecuencias, cada subsecuencia se ordena. Luego, las posteriores ordenadas se fusionan en la secuencia general ordenada.
La clasificación de fusión es un algoritmo de clasificación efectivo basado en la operación de fusión. Este algoritmo es una aplicación muy típica de divide y conquista. Fusionar las subsecuencias ordenadas para obtener una secuencia completamente ordenada; Es decir, haga cada subsecuencia de primer orden y luego haga orden de segmentos subsecuencias. Si dos tablas ordenadas se fusionan en una tabla ordenada, se llama fusión de 2 vías.