Frage

Ich kam in dem folgende Codefragment in einem CouchDB Buch .

function(doc) {
  doc.tags && doc.tags.forEach(function(tag) {
    emit(tag, 1);
  });
}

Kann erklären jemand wie funktioniert die Funktion (Tag) teilweise funktioniert?

Danke und Gruß,

raj

War es hilfreich?

Lösung

Dies ist ein anonymer Inline-Funktion Ausdruck bezeichnet. Es schafft eine Funktion und gibt Ihnen einen Hinweis darauf, ähnlich wie wenn Sie hatte geschrieben:

function emitTag(tag) {
    emit(tag, 1);
}
doc.tags && doc.tags.forEach(emitTag);

Die array.forEach Methode ruft die gegebene Funktion einmal für jedes der Elemente in array um. Es ist ein Standardverfahren in ECMAScript Fifth Edition und hat in vielen Browsern seit einiger Zeit, aber nicht JScript (IE). Ich vermute, couchdb kümmert sich um dieses Problem für Sie aber.

Andere Tipps

function(tag) {...} 

wird "für jeden" Tag in "doc.tags" mit dem "Tag" Argument übergeben an die Lambda-Funktion in Frage gestellt wird.

forEach einfach iteriert über Array und Anrufe funktionieren Sie es mit jedem Element übergeben es findet.

Beachten Sie, dass nicht jeder Browser-Unterstützung es, Hilfsfunktion $.forEach in jQuery da ist, ist es sicherer in Bezug auf die Browser-Unterstützung ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top