首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >JavaScript:在JavaScript中有类似的“python生成器”吗?

JavaScript:在JavaScript中有类似的“python生成器”吗?
EN

Stack Overflow用户
提问于 2012-06-23 03:07:04
回答 4查看 3.1K关注 0票数 2

在JavaScript中有任何类似的“python生成器”吗?

当我们需要做一次时,迭代一个大的数组,哈希.

生成器是可迭代的,但是只能读取一次__。这是因为它们没有将所有值存储在内存中,而是动态地生成__值

(Python的生成器在以下线程中解释:在Python中,“产生”关键字是做什么的? )

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-06-23 03:13:07

不是以标准的方式。有些浏览器是已实施 python风格的生成器,但它们需要显式激活的扩展。有人建议增加发电机开发下一个版本的ECMAScript规范,但我不认为它很快就能使用。

到目前为止,您能做的最好的就是使用旧的外部迭代器模式。它同样强大,尽管在更复杂的情况下编写是一件痛苦的事情。

票数 2
EN

Stack Overflow用户

发布于 2012-06-23 03:56:20

这并不是非常实用,但您可以实现如下相同的基本效果:

代码语言:javascript
运行
复制
function make_generator(start, end) {
  var i=start;
  return function() {
    if (i<end) {
      output = i;
      i += 1;
      return output;
    }
    else {
      return null;
    }
  }
}
var out = document.getElementById('out');
var generator = make_generator(1,10);
var g = generator();
while (g) {
  if (out.innerHTML)
    out.innerHTML = out.innerHTML + '<br>' + g;
  else
    out.innerHTML = g;
  g = generator();
}
票数 2
EN

Stack Overflow用户

发布于 2012-06-23 03:14:25

在JavaScript 1.7中:

代码语言:javascript
运行
复制
function rangeGen(n) {
    for (let i = 0; i < n; i++)
        yield i;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11166483

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档