/
home
/
infinitibizsol
/
insurcrm.infinitibizsol.com
/
node_modules
/
lop
/
lib
/
File Upload :
llllll
Current File: /home/infinitibizsol/insurcrm.infinitibizsol.com/node_modules/lop/lib/lazy-iterators.js
var fromArray = exports.fromArray = function(array) { var index = 0; var hasNext = function() { return index < array.length; }; return new LazyIterator({ hasNext: hasNext, next: function() { if (!hasNext()) { throw new Error("No more elements"); } else { return array[index++]; } } }); }; var LazyIterator = function(iterator) { this._iterator = iterator; }; LazyIterator.prototype.map = function(func) { var iterator = this._iterator; return new LazyIterator({ hasNext: function() { return iterator.hasNext(); }, next: function() { return func(iterator.next()); } }); }; LazyIterator.prototype.filter = function(condition) { var iterator = this._iterator; var moved = false; var hasNext = false; var next; var moveIfNecessary = function() { if (moved) { return; } moved = true; hasNext = false; while (iterator.hasNext() && !hasNext) { next = iterator.next(); hasNext = condition(next); } }; return new LazyIterator({ hasNext: function() { moveIfNecessary(); return hasNext; }, next: function() { moveIfNecessary(); var toReturn = next; moved = false; return toReturn; } }); }; LazyIterator.prototype.first = function() { var iterator = this._iterator; if (this._iterator.hasNext()) { return iterator.next(); } else { return null; } }; LazyIterator.prototype.toArray = function() { var result = []; while (this._iterator.hasNext()) { result.push(this._iterator.next()); } return result; };
Copyright ©2k19 -
Hexid
|
Tex7ure