Apprenez le reduce() et reduceRight() des tableaux dans un article

reduce()Les méthodes et reduceRight()les méthodes traitent tour à tour chaque membre du tableau, s'accumulant finalement en une seule valeur.
Leur différence est, reduce()是从左到右处理, reduceRight()则是从右到左, et les autres sont exactement les mêmes.

[1, 2, 3, 4, 5].reduce(function (a, b) {
    
    
  console.log(a, b);
  return a + b;
})
// 1 2
// 3 3
// 6 4
// 10 5
//最后结果:15

Dans le code ci-dessus, la méthode reduce() est utilisée pour trouver la somme de tous les membres du tableau. reduce() 参数是一个函数, chaque membre du tableau exécutera cette fonction à tour de rôle. Si le tableau a n membres, cette fonction paramétrique sera exécutée n - 1 fois.

  • Première exécution : a est le premier membre 1 du tableau, b est le deuxième membre 2 du tableau.
  • La deuxième exécution : a est la valeur de retour 3 du tour précédent, et b est le troisième membre 3.
  • La troisième exécution : a est la valeur de retour 6 du tour précédent, et b est le quatrième membre 4.
  • La quatrième exécution : a est la valeur de retour 10 du tour précédent, et b est le cinquième membre 5. À ce stade, la traversée de tous les membres est terminée et la valeur de retour de la méthode entière est la valeur de retour 15 du dernier tour.

méthode reduce() et méthode reduceRight() 第一个参数都是一个函数. la fonction 接受以下四个参数.

  1. variable cumulée. Lorsqu'il est exécuté pour la première fois, il prend par défaut le premier membre du tableau ; à chaque exécution suivante, il s'agit de la valeur de retour du tour précédent.
  2. variable courante. Lorsqu'il est exécuté pour la première fois, il prend par défaut le deuxième membre du tableau ; à chaque exécution suivante, il s'agit du membre suivant.
  3. localisation actuelle. Un entier indiquant la position du deuxième paramètre (la variable actuelle), par défaut à 1.
  4. tableau d'origine.

Parmi ces quatre paramètres, seuls les deux premiers sont obligatoires, et les deux derniers sont facultatifs.

[1, 2, 3, 4, 5].reduce(function (
  a,   // 累积变量,必须
  b,   // 当前变量,必须
  i,   // 当前位置,可选
  arr  // 原数组,可选
) {
    
    
  // ... ...

Si vous souhaitez spécifier une valeur initiale pour la variable cumulative, vous pouvez la mettre dans la méthode reduce() et la méthode reduceRight() 第二个参数.

[1, 2, 3, 4, 5].reduce(function (a, b) {
    
    
  return a + b;
}, 10);
// 25

Le code ci-dessus spécifie que la valeur initiale du paramètre a est 10, donc le tableau commence à s'accumuler à partir de 10, et le résultat final est 25. 注意, à ce moment b commence à traverser à partir du premier membre du tableau, et la fonction de paramètre sera exécutée 5une fois.

Il est recommandé de toujours ajouter le deuxième paramètre, qui est plus intuitif, et chaque membre du tableau exécutera à son tour la fonction de paramètre de la méthode reduce().

Guess you like

Origin blog.csdn.net/weixin_46369590/article/details/129986614