我在一本 CouchDB 书中遇到了以下代码片段。
function(doc) {
doc.tags && doc.tags.forEach(function(tag) {
emit(tag, 1);
});
}
有人可以解释功能(标签)部分是如何工作的吗?
谢谢并恭祝安康,
拉吉
我在一本 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”中调用“for each”标签,并将“tag”参数传递给相关的 lambda 函数。
forEach
只需遍历数组并使用它找到的每个元素调用传递给它的函数。
请注意,不是每个浏览器都支持它,$.forEach
jQuery 中有辅助功能,它在浏览器支持方面更安全。