直接ではありません。これは地獄のように醜いですが、動作します:
arr = for a in [0..2]
a for [0..1]
console.log arr
console.log [].concat.apply [], arr
出力:
[ [ 0, 0 ], [ 1, 1 ], [ 2, 2 ] ]
[ 0, 0, 1, 1, 2, 2 ]
最初のブロックはネストされた配列を作成し、concat.apply (javascript) メソッドはそれを平坦化します。
完全を期すために (コメントを参照)、CS の「きれいな」バージョンを次に示しますが、別の種類の配列が作成されることに注意してください (ループを異なる順序で実行します)。
arr = (a for a in [0..2] for [0..1])
console.log arr
console.log [].concat.apply [], arr
出力:
[ [ 0, 1, 2 ], [ 0, 1, 2 ] ]
[ 0, 1, 2, 0, 1, 2 ]
最後の例はコードと直接比較できるものではありませんが、実際に何を達成しようとしているのかによっては、とにかく使用できる場合があります。
CS には好きなことがたくさんありますが、私が嫌いな 2 つの点は、1) 常にブロックに空白を使わなければならないこと (私の最初の例をワンライナーにする方法がない)、および 2) オブジェクトの理解がないこと (これとは関係ありません) です。例)。