UNPKG

834 BJavaScriptView Raw
1import toArray from './toArray.js';
2
3/**
4 * Gets the next value on a wrapped object following the
5 * [iterator protocol](https://mdn.io/iteration_protocols#iterator).
6 *
7 * @name next
8 * @memberOf _
9 * @since 4.0.0
10 * @category Seq
11 * @returns {Object} Returns the next iterator value.
12 * @example
13 *
14 * var wrapped = _([1, 2]);
15 *
16 * wrapped.next();
17 * // => { 'done': false, 'value': 1 }
18 *
19 * wrapped.next();
20 * // => { 'done': false, 'value': 2 }
21 *
22 * wrapped.next();
23 * // => { 'done': true, 'value': undefined }
24 */
25function wrapperNext() {
26 if (this.__values__ === undefined) {
27 this.__values__ = toArray(this.value());
28 }
29 var done = this.__index__ >= this.__values__.length,
30 value = done ? undefined : this.__values__[this.__index__++];
31
32 return { 'done': done, 'value': value };
33}
34
35export default wrapperNext;