当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


JavaScript Generator next()用法及代码示例


JavaScript 生成器.prototype.next()方法是一个内置方法JavaScript用于返回具有完成和值两个属性的对象。

用法:

gen.next( value );

参数:该函数接受如上所述和如下所述的单个参数:

  • value:该参数保存要发送到生成器的值。

返回值:此方法返回一个包含两个属性的对象:

  • done:它有它的值
    • true- 对于超过迭代序列末尾的迭代器。
    • false- 对于能够产生序列中下一个值的迭代器。
  • value:它包含迭代器返回的任何 JavaScript 值。

以下示例说明了 JavaScript 中的 Generator.prototype.next() 方法:

示例 1:在此示例中,我们将创建一个生成器,然后应用 Generator.prototype.next() 方法并查看输出。

javascript


function* GFG() { 
    yield "GeeksforGeeks"; 
    yield "JavaScript"; 
    yield "Generator.prototype.next()"; 
} 
  
const geek = GFG(); 
console.log(geek.next()); 
console.log(geek.next()); 
console.log(geek.next()); 
console.log(geek.next());

输出:

Object { value: "GeeksforGeeks", done: false }
Object { value: "JavaScript", done: false }
Object { value: "Generator.prototype.next()", done: false }
Object { value: undefined, done: true }

示例 2:在此示例中,我们将创建一个生成器,然后应用 Generator.prototype.next() 方法并查看输出。

javascript


function* GFG(len, list) { 
    let result = []; 
    let val = 0; 
  
    while (val < list.length) { 
        result = []; 
        let i = val 
        while (i < val + len) { 
            if (list[i]) { 
                result.push(list[i]); 
            } 
            i += 1 
        } 
  
        yield result; 
        val += len; 
    } 
} 
list = [ 
    'geeks1', 'geeks2', 'geeks3', 
    'geeks4', 'geeks5', 'geeks6', 
    'geeks7', 'geeks8', 'geeks9', 
    'geeks10', 'geeks11'
]; 
  
let geek = GFG(4, list); 
  
console.log(geek.next().value); 
console.log(geek.next().value); 
console.log(geek.next().value); 
console.log(geek.next().value);

输出:

geeks1,geeks2,geeks3,geeks4
geeks5,geeks6,geeks7,geeks8
geeks9,geeks10,geeks11
undefined

支持的浏览器:Generator.prototype.next()方法支持的浏览器如下:

  • 谷歌浏览器
  • Firefox
  • Opera
  • Safari
  • Edge

我们有Javascript Generator方法的完整列表,要检查这些方法,请阅读Javascript Generator Reference文章。



相关用法


注:本文由纯净天空筛选整理自SHUBHAMSINGH10大神的英文原创作品 JavaScript Generator next() Method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。