使用.toArray(foo)
方法可以轻松地将游标转换为数组:
var cursor = col.find({});
cursor.toArray(function (err, itemsArray) {
/* do something */
});
但是有可能在游标中转换itemsArray
所以我将拥有所有游标函数吗?
var newCursor = foo (itemsArray);
typeof newCursor.toArray === "function" // true
答案 0 :(得分:1)
嗯,这只是JavaScript,所以为什么不创建自己的迭代器:
var Iterator = function () {
var items = [];
var index = 0;
return {
"createCursor" : function (listing) {
items = listing;
},
"next" : function () {
if ( this.hasNext() ) {
return items[index++];
} else {
return null;
}
},
"hasNext" : function () {
if ( index < items.length ) {
return true;
} else {
return false;
}
}
}
}();
那么你就像这样使用数组:
var cursor = new Iterator();
cursor.createCursor( array );
cursor.next(); // returns just the first element of the array
所以只是编写迭代器的一般方法。如果您想要更多功能,那么只需将其他方法添加到原型中。