You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
836 B
JavaScript
36 lines
836 B
JavaScript
6 years ago
|
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;
|