Question: *Is there any "python's Generator" equivalent in JavaScript?*  

*PS:*
Python's Generator is very memory efficient when we need to do **one time** iterate through a **big** array, hash...   

*"Generators are iterables, but you **can only read them once**. It's because they do not store all the values in memory, **they generate the values on the fly**"*

(Python's Generator explained in this thread: [What does the "yield" keyword do in Python?](https://stackoverflow.com/questions/231767/the-python-yield-keyword-explained) )

Answer: 
Not in a standard way. Some browsers [already implement](https://developer.mozilla.org/en/JavaScript/Guide/Iterators_and_Generators) python-style generators, but they require extensions that need to be explicitly activated.
There are proposals to [add generators](http://wiki.ecmascript.org/doku.php?id=proposals%3aiterators_and_generators) to a next version of the ECMAScript spec, but I wouldn't see that being useable very soon.

So far, the best you can do is to use the old school [external iterator](https://en.wikipedia.org/wiki/Iterator) pattern. It is just as powerful, although it is a pain to write in more complicated cases.
It's not super practical, but you can achieve the same basic effect like this:

```
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();
}

```