📜  JavaScript | Generator.prototype.next() 方法

📅  最后修改于: 2022-05-13 01:56:50.210000             🧑  作者: Mango

JavaScript | Generator.prototype.next() 方法

Generator.prototype.next()方法是 JavaScript 中的内置方法,用于返回具有 done 和 value 两个属性的对象。

句法:

gen.next( value );

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

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

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

  1. 完成:它具有价值
    • true - 对于经过迭代序列末尾的迭代器。
    • false – 对于能够产生序列中下一个值的迭代器。
  2. value:它包含迭代器返回的任何 JavaScript 值。

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

示例 1:

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:

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'
];
  
var geek = GFG(4, list);              
    
document.writeln(geek.next().value+"
");       document.writeln(geek.next().value+"
");     document.writeln(geek.next().value+"
");     document.writeln(geek.next().value+"
");

输出:

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

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

  • 谷歌浏览器
  • 火狐
  • 歌剧
  • 苹果浏览器
  • 边缘