Sens de forEach (fonction (balise) en JavaScript
-
05-07-2019 - |
Question
J'ai trouvé le fragment de code suivant dans un livre CouchDB .
function(doc) {
doc.tags && doc.tags.forEach(function(tag) {
emit(tag, 1);
});
}
Quelqu'un peut-il expliquer comment fonctionne la partie fonction (balise)?
Merci et salutations
raj
La solution
Ceci est appelé une expression de fonction inline anonyme. Il crée une fonction et vous en donne la référence, comme si vous aviez écrit:
function emitTag(tag) {
emit(tag, 1);
}
doc.tags && doc.tags.forEach(emitTag);
La méthode array.forEach
appelle la fonction donnée une fois pour chacun des éléments de array
dans l'ordre. ECMAScript Fifth Edition est une méthode standard utilisée depuis un certain temps dans de nombreux navigateurs, mais pas dans JScript (IE). Je suppose que couchdb s’occupe toutefois de cette question pour vous.
Autres conseils
function(tag) {...}
est appelé "pour chaque". balise dans & doc; doc.tags " avec le & tag; tag " argument passé à la fonction lambda en question.
forEach
itère simplement un tableau et appelle la fonction que vous lui transmettez avec chaque élément trouvé.
Sachez que tous les navigateurs ne la prennent pas en charge, il existe une fonction d'assistance $. forEach
dans jQuery, elle est plus sûre en termes de prise en charge de navigateur.