Ecmascript5 définit deux méthodes de fusion pour les tableaux: réduction () et reduceRight (). Les deux méthodes disent les éléments arbitraires du tableau, puis construisent une valeur renvoyée finale. La méthode Reduce () commence à partir du premier élément du tableau et itère à travers la fin du tableau un par un. La méthode ReduceRight () est tout le contraire. Il commence à partir du dernier élément du tableau et va de l'avant vers le premier élément.
Les deux méthodes reçoivent deux paramètres: une fonction appelée sur chaque élément et la valeur initiale comme base de la fusion. La fonction transmise pour réduire () et reduceRight () reçoit 4 paramètres: la valeur précédente, la valeur actuelle, l'index de l'élément et l'objet de tableau. Toute valeur renvoyée par cette fonction sera automatiquement transmise à l'élément suivant comme premier paramètre. La première itération se produit sur le deuxième terme du tableau, donc le premier paramètre est le premier terme du tableau, et le deuxième paramètre est le deuxième terme du tableau.
Par exemple, nous pouvons utiliser la méthode Reduce () pour trouver la somme de toutes les valeurs dans un tableau.
var nums = [1,2,3,4,5]; var sum = nums.reduce (fonction (prev, cur, index, array) {retrun pre + cur;});Dans le code ci-dessus, la première fois que la fonction de rappel est exécutée, la prev est 1 et Cur est 2. La deuxième fois que PREV est 3 et Cur est 3. La méthode Reduce () répétera ce processus jusqu'à ce que chaque élément du tableau soit accessible une fois, et enfin attribuer le résultat renvoyé à la somme.
La méthode ReduceRight () est similaire à la gauche et à la droite, mais est exécutée à l'envers. Par exemple:
var nums = [1,2,3,4,5]; var sum = nums.reduceRight (fonction (prev, cur, index, array) {retrun pre + cur;});Dans cet exemple, la première fois que la fonction de rappel est exécutée, le prev est 5 et Cur est 4. Le résultat de la somme finale est le même que la méthode Reduce (), les deux.
Les navigateurs qui prennent en charge réduction () et reduceRight () sont: IE9 +, Firefox3 +, Safari4 +, Opera10.5 + et Chrome.
Remplir
ECMascript5 ajoute également 2 nouvelles méthodes pour fusionner les tableaux: réduire () et reduceRight ().
Les deux itéèrent sur tous les articles du tableau
réduire (): itérer un par un du premier élément à la fin.
ReduceRight (): à partir du dernier élément du tableau, en itérant vers le premier élément du tableau.
Les deux méthodes acceptent deux paramètres: la fonction appelée sur chaque élément (les paramètres sont: valeur antérieure, valeur actuelle, index de l'élément, objet de tableau)
Toute valeur renvoyée par cette fonction sera automatiquement transmise à l'élément suivant comme premier paramètre. La première itération se produit sur le deuxième élément du tableau,
Par conséquent, le premier paramètre est le premier élément du tableau, et le deuxième paramètre est le deuxième élément du tableau
et comme valeur initiale de la base de fusion.
Utilisez la méthode Reduce () pour effectuer la somme de toutes les valeurs dans un tableau, telles que:
VALES VAR = [1, 2, 3, 4, 5]; var sum = valeurs.reduce (fonction (prev, cur, index, array) {return prev + cur;}); alerte (somme); // Le résultat est le même, mais la direction est le var opposé SUM2 = valeurs.reduceRight (fonction (prev, cur, index, array) {return prev + cur;}); alerte (sum2);Le tri de fusion est un algorithme de tri efficace basé sur le fonctionnement de la fusion. Cet algorithme est une application très typique de la division et de la conquête.
La méthode de tri de fusion consiste à fusionner deux (ou plus de deux) des tables ordonnées dans une nouvelle table ordonnée, c'est-à-dire diviser la séquence à tri en plusieurs sous-séquences, chaque sous-séquence est ordonnée. Ensuite, les sous-séquences ordonnées sont fusionnées dans la séquence ordonnée globale.
Le tri de fusion est un algorithme de tri efficace basé sur le fonctionnement de la fusion. Cet algorithme est une application très typique de la division et de la conquête. Fusionner les sous-séquences ordonnées pour obtenir une séquence complètement ordonnée; Autrement dit, passez à chaque première commande de la sous-séquence, puis passez l'ordre des segments de la sous-séquence. Si deux tables ordonnées sont fusionnées dans une table ordonnée, elle est appelée fusion à 2 voies.