J'apprends JavaScript via le manuel "Eloquent JavaScript" et maintenant je fais des exercices du chapitre 5 "Fonctions de commande haute" . L'une des fonctions que ce chapitre vous présente est " réduire ". Je comprends comment cela fonctionne, mon problème survient lorsque j'essaie de comprendre sa définition chez MDN . Je ne comprends pas la définition de syntaxe qu'il donne:
arr.reduce(callback[, initialValue])
Cette section de syntaxe est suivie de la section intitulée Paramètres. Ceux-ci sont:
Ce que je ne comprends pas, c'est ce que signifient ces crochets et la virgule? Parce que quand je vois des crochets immédiatement, je pense dans les tableaux. Et pourquoi est-ce que juste initialValue
dans la définition et non les autres paramètres? Pourquoi il n'y a pas d'espace entre les crochets et le callback
?
Parce qu'il y a deux exemples ci-dessous:
Exemple 1
[0, 1, 2, 3, 4].reduce(function(previousValue, currentValue, index, array) { return previousValue + currentValue; });
Exemple 2
var total = [0, 1, 2, 3].reduce(function(a, b) { return a + b; }); // total == 6
Et je ne sais pas comment correspondent à la définition.
Merci
Il est généralement une convention pour les documentations API d'utiliser []
pour désigner des paramètres facultatifs. Cependant, []
ne fait pas partie de la syntaxe de l'utilisation. C'est juste une convention de documentation.
Comme déjà expliqué dans d'autres réponses, les paramètres à l'intérieur de "[]" sont facultatifs. En ce qui concerne la question de savoir pourquoi les "autres paramètres" (c.-à-d. PreviousValue, etc.) ne sont pas là, ce sont des paramètres de callback
et de ne pas reduce
. Ainsi, le callback
recevra ces arguments sur chaque cycle de reduce
.