Значение forEach(функция(тег) в JavaScript
-
05-07-2019 - |
Вопрос
Я наткнулся на следующий фрагмент кода в Книга CouchDB.
function(doc) {
doc.tags && doc.tags.forEach(function(tag) {
emit(tag, 1);
});
}
Может ли кто-нибудь объяснить, как работает функциональная часть (тег)?
Спасибо и с уважением,
радж
Решение
Это называется анонимным встроенным функциональным выражением.Он создает функцию и дает вам ссылку на нее, аналогично тому, как если бы вы написали:
function emitTag(tag) {
emit(tag, 1);
}
doc.tags && doc.tags.forEach(emitTag);
В array.forEach
метод вызывает данную функцию один раз для каждого из элементов в array
по порядку.Это стандартный метод в пятом издании ECMAScript, который уже некоторое время используется во многих браузерах, но не в JScript (IE).Я предполагаю, что couchdb позаботится об этой проблеме за вас.
Другие советы
function(tag) {...}
вызывается "для каждого" тега в "doc.tags" с аргументом "tag", передаваемым рассматриваемой лямбда-функции.
forEach
просто выполняет итерацию по массиву и вызывает функцию, которую вы передаете ему с каждым найденным элементом.
Имейте в виду, что не каждый браузер поддерживает это, есть вспомогательная функция $.forEach
в jQuery это безопаснее с точки зрения поддержки браузера.