Значение forEach (функция (тег) в JavaScript - PullRequest
1 голос
/ 22 октября 2009

Я наткнулся на следующий фрагмент кода в книге CouchDB .

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

Может кто-нибудь объяснить, как работает функция (тег)?

Спасибо и всего наилучшего,

Радж

Ответы [ 3 ]

9 голосов
/ 22 октября 2009

Это называется выражением анонимной встроенной функции. Он создает функцию и дает вам ссылку на нее, как если бы вы написали:

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

Метод array.forEach вызывает данную функцию один раз для каждого из элементов в array по порядку. Это стандартный метод в пятом издании ECMAScript, который уже давно используется во многих браузерах, но не в JScript (IE) Я думаю, что couchdb позаботится об этом для вас.

1 голос
/ 22 октября 2009
function(tag) {...} 

вызывается «для каждого» тега в «doc.tags» с аргументом «тега», передаваемым рассматриваемой лямбда-функции.

0 голосов
/ 22 октября 2009

forEach просто перебирает массив и вызывает передаваемую ему функцию с каждым найденным элементом.

Имейте в виду, что не все браузеры поддерживают его, в jQuery есть вспомогательная функция $.forEach, это безопаснее с точки зрения поддержки браузеров.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...