Significado da forEach (function (tag) em JavaScript
-
05-07-2019 - |
Pergunta
me deparei com o seguinte fragmento de código em um CouchDB livro .
function(doc) {
doc.tags && doc.tags.forEach(function(tag) {
emit(tag, 1);
});
}
Pode alguém explicar como é que funciona a função (tag) parte?
Obrigado e cumprimentos,
raj
Solução
Isso é chamado de uma expressão função inline anônimo. Ele cria uma função e dá-lhe uma referência a ele, semelhante a se você tivesse escrito:
function emitTag(tag) {
emit(tag, 1);
}
doc.tags && doc.tags.forEach(emitTag);
O método array.forEach
chama a função dada uma vez para cada um dos itens na array
em ordem. É um método padrão em ECMAScript quinta edição e tem sido em muitos navegadores, por algum tempo, mas não JScript (IE). Eu estou supondo couchdb cuida desse problema para você embora.
Outras dicas
function(tag) {...}
é chamado "para cada" tag em "doc.tags" com o argumento de "tag" passado para a função lambda em questão.
forEach
simplesmente itera sobre array e chamadas de função que você passar para ele com cada elemento que encontra.
Esteja ciente de que nem todo o suporte ao navegador isso, não há helper $.forEach
função em jQuery, é mais seguro em termos de suporte do navegador.