forEach的含义(JavaScript中的函数(标记)

时间:2009-10-22 11:08:32

标签: javascript couchdb

我在CouchDB book中看到了以下代码片段。

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

有人可以解释函数(标签)部分是如何工作的吗?

谢谢和问候,

拉​​吉

3 个答案:

答案 0 :(得分:9)

这称为匿名内联函数表达式。它会创建一个函数并为您提供一个参考,类似于您编写的:

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

array.forEach方法按顺序为array中的每个项调用给定函数一次。它是ECMAScript第五版中的标准方法,已经在许多浏览器中使用了一段时间,但不是JScript(IE)。我猜想couchdb会为你解决这个问题。

答案 1 :(得分:1)

function(tag) {...} 

在“doc.tags”中调用“for each”标签,并将“tag”参数传递给相关的lambda函数。

答案 2 :(得分:0)

forEach只是遍历数组并使用它找到的每个元素调用传递给它的函数。

请注意,不是每个浏览器都支持它,jQuery中有帮助函数$.forEach,它在浏览器支持方面更安全。