範囲を反復する関数的な方法(ES6 / 7)[重複] 質問する

範囲を反復する関数的な方法(ES6 / 7)[重複] 質問する

以下をより機能的に行うための最良の方法は何ですか(ES6 / ES7を使用)

let cols = [];
for (let i =0; i <= 7; i++) {
   cols.push(i * i);
}
return cols;

私はこうやってみました、

return [ ...7 ].map(i => {
  return i * i;
});

しかし、それは

[].concat(7).map(function (n) {
  return n * n;
});

それは私が期待していたものではありません。

編集:

@pavlo. 確かにそれは間違いでした。私はJSXを使用していましたが、たとえば7つのdivが必要です(未テスト)

let cols = [];
    for (let i =0; i <= 7; i++) {
       cols.push(<div id={i}> ...  </div>)
    }
    return cols;

つまり、一時的な変数の数と手続き的な感覚を減らすことが目的だったのです。

ベストアンサー1

空の配列を作成し、それを埋めて(そうでない場合は map はそれをスキップします)、インデックスを値にマップすることができます。

Array(8).fill(0).map((_, i) => i * i);

おすすめ記事