36 lines
		
	
	
		
			836 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			36 lines
		
	
	
		
			836 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|  | var toArray = require('./toArray'); | ||
|  | 
 | ||
|  | /** | ||
|  |  * Gets the next value on a wrapped object following the | ||
|  |  * [iterator protocol](https://mdn.io/iteration_protocols#iterator).
 | ||
|  |  * | ||
|  |  * @name next | ||
|  |  * @memberOf _ | ||
|  |  * @since 4.0.0 | ||
|  |  * @category Seq | ||
|  |  * @returns {Object} Returns the next iterator value. | ||
|  |  * @example | ||
|  |  * | ||
|  |  * var wrapped = _([1, 2]); | ||
|  |  * | ||
|  |  * wrapped.next(); | ||
|  |  * // => { 'done': false, 'value': 1 }
 | ||
|  |  * | ||
|  |  * wrapped.next(); | ||
|  |  * // => { 'done': false, 'value': 2 }
 | ||
|  |  * | ||
|  |  * wrapped.next(); | ||
|  |  * // => { 'done': true, 'value': undefined }
 | ||
|  |  */ | ||
|  | function wrapperNext() { | ||
|  |   if (this.__values__ === undefined) { | ||
|  |     this.__values__ = toArray(this.value()); | ||
|  |   } | ||
|  |   var done = this.__index__ >= this.__values__.length, | ||
|  |       value = done ? undefined : this.__values__[this.__index__++]; | ||
|  | 
 | ||
|  |   return { 'done': done, 'value': value }; | ||
|  | } | ||
|  | 
 | ||
|  | module.exports = wrapperNext; |