Arguments de fonction JavaScript pour la fonction de filtre
numbers = [1,2,3,4,5,4,3,2,1];
var filterResult = numbers.filter(function(i){
return (i > 2);
});
Je ne comprends pas comment cela fonctionne. si je omettre la j'ai comme un argument de fonction, il rompt la fonction, mais la je n'est pas attaché à rien, alors pourquoi faut-il être là?
source d'informationauteur Kevin
Vous devez vous connecter pour publier un commentaire.
.filter
(Array.le prototype.filtre
) appelle la fonction fournie avec 3 arguments:element
est l'élément particulier du tableau pour l'appel.index
est l'indice actuel de l'élémentarray
est le tableau filtré.Vous pouvez utiliser n'importe quel ou tous les arguments.
Dans votre cas,
i
se réfère à laelement
et est utilisé dans le corps de votre fonction:En d'autres termes, "éléments de filtre où
element
est plus grand que 2".j'ai est une référence à l'objet courant dans l'ensemble de l'intérieur que de fermeture. Il pourrait être n'importe quel nom que comme c'est juste une variable, mais serait d'avoir le même nom à l'intérieur de la clôture. Au lieu d'utiliser
function(){}
vous pouvez utiliser une fonction de callback qui est de savoir commentfilter
a été conçu.La référence est fait implicitement, par la définition de
.filter
vous pouvez en lire plus ici: http://msdn.microsoft.com/en-us/library/ff679973(v=vs. 94).aspxLa
i
est en fait très important. Il raconte donne la fonction de filtre des informations sur les éléments qu'il agit. En fait, il est utilisé ici(i > 2)
.Cela permet de maintenir les éléments dont la valeur est supérieure à 2.
Que
i
est le paramètre formel pour la fonction que vous fournissez à.filter()
. Si vous ne l'insérez pas, la fonction n'aura pas way1 à se référer à l'argument qui lui est passé (lei
à l'intérieur du corps de la fonction renvoie à une autre entité qui pourrait même ne pas être définie --window.i
serait typique).1 qui est techniquement un mensonge, mais trouvent qu'il est vrai pour les fins de cette discussion
Un vieux thread en effet, mais juste de remplir ce qui reste non-dit.
Les parenthèses sont là pour vous le programmeur pour insérer quelle que soit la variable nom de sens pour votre programme.
Si vous choisissez 'i', la plupart des autres (débutant) programmeurs pourraient penser " Oh, j'ai les moyens de l'indice. Ce qui serait faux.
Si vous utilisez un argument au lieu de trois, je préfère le " el " pour représenter l'élément, ou si votre tableau contient des arômes de soude, je préfère le 'goût'.