从数组构造生成器函数
Construct generator function from array
我正在尝试从数组构建生成器函数。最简单的例子是:
const array = [1,2,3,4]
function * createGenerator () {
array.map(function(elem){
yield elem
}
}
我希望:
function * createGenerator () {
yield 1
yield 2
yield 3
yield 4
}
此外,如果我想添加这样的切换语句:
function processServerActions (array) {
for (let elem in array) {
switch(elem) {
case 1:
yield 1111
case 2:
yield 22222
case 3:
yield 333333
yield 444444
case 4:
yield 55555
}
}
}
但不起作用。我错过了什么?
谢谢!
回调只能返回回调。为了生成生成器函数,yield
必须位于函数内部,但必须位于嵌套回调之外。
最好使用for ... of
来生成值。
function* createGenerator() {
for (let elem of array){
yield elem;
}
}
const array = [1,2,3,4],
c = createGenerator();
console.log([...c]);
您需要for (let elem of array)
和of
,而不是in
。
function* createGenerator() {
for (let elem of array) {
switch(elem) {
case 1:
yield 1111;
break;
case 2:
yield 22222;
break;
case 3:
yield 333333;
yield 444444;
break;
case 4:
yield 55555;
}
}
}
const array = [1,2,3,4],
c = createGenerator();
console.log([...c]);
相关文章:
- 使用jQuery浏览函数数组
- coffescript/javascript函数数组的行为真的很奇怪
- 返回多个变量的 JavaScript 函数:数组与对象.最佳实践是什么
- 如何在 JavaScript 中动态地编写可迭代的函数数组
- JavaScript 自包含函数数组访问自我索引
- 如何在javascript中调用函数数组的索引号
- 从外部函数(数组)了解返回函数(x)
- Javascript函数数组
- 引用函数数组中的另一个函数
- 文本框搜索/Javascript函数数组**不对应**
- 返回一个函数数组
- selenium-webdriver 将函数数组作为参数传递给 executeScript
- 70%的时间运行JavaScript函数,从函数数组中随机选择
- 如何循环函数数组并在单击时一次执行一个
- 如何在 Javascript 命名空间脚本中创建函数数组
- 创建函数数组
- 在 Jscript 中为 Q.all() 构建一个动态函数数组
- 打印函数数组的函数名称
- 循环遍历函数数组 - 对象不支持此属性或方法 (IE8)
- 将函数数组传递给另一个函数