1

我在一本 CouchDB 书中遇到了以下代码片段。

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

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

谢谢并恭祝安康,

拉吉

4

3 回答 3

9

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

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

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

于 2009-10-22T11:24:56.910 回答
1
function(tag) {...} 

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

于 2009-10-22T11:18:57.470 回答
0

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

请注意,不是每个浏览器都支持它,$.forEachjQuery 中有辅助功能,它在浏览器支持方面更安全。

于 2009-10-22T11:18:50.590 回答