我在CouchDB book中看到了以下代码片段。
function(doc) {
doc.tags && doc.tags.forEach(function(tag) {
emit(tag, 1);
});
}
有人可以解释函数(标签)部分是如何工作的吗?
谢谢和问候,
拉吉
答案 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
,它在浏览器支持方面更安全。