Array comprehensions compiled to ES5.

npm install es6-comprehensions
8 downloads in the last week
15 downloads in the last month


Compiles JavaScript array comprehensions (proposed in ES6) to ES5-compatible syntax. For instance:

var squared = [ for (x of [1,2,3,4,5]) if (x > 2) x * x ];

compiles to:

var squared = (function() {
  var result = [];

  for (var i_0 = 0, arr_0 = [1,2,3,4,5], len_0 = arr_0.length, x; i_0 < len_0; i_0++) {
    x = arr_0[i_0];

    if (x > 2) {
      result.push(x * x);

  return result;

For more information check out the current draft for ECMAScript 6.

Please notice that the syntax has changed and many resources is still using old one.


$ npm install es6-comprehensions


Array comprehensions progressed to the Draft ECMAScript 6 Specification. It doesn't mean that there will be no changes or that array comprehensions will be included in the final ES6 Specification.

ES6 defines also iterators that can be used together with for-of loops that can be used in array comprehensions. This translator does not support iterators in for-of loops. It translates for-of loops to plain for loops. Thus, it supports only plain JS arrays.


  • Consider replacing plain for loop with forEach method. It will result in more compact code,
  • Consider migration to escodegen.


  1. Clone the repository.
  2. Run npm install.
  3. Do your changes.

Pull requests are highly appreciated.



npm loves you