1. ホーム
  2. javascript

[解決済み】「RangeError: 最大呼び出しスタックサイズを超えました」なぜ?

2022-02-17 05:57:44

質問

もし私が

Array.apply(null, new Array(1000000)).map(Math.random);

Chrome 33では

RangeError: Maximum call stack size exceeded

なぜ?

どのように解決するのか?

ブラウザは、それほど多くの引数を処理できません。例えば、このスニペットをご覧ください。

alert.apply(window, new Array(1000000000));

この結果 RangeError: Maximum call stack size exceeded というのは、あなたの問題と同じです。

それを解決するために、こうします。

var arr = [];
for(var i = 0; i < 1000000; i++){
    arr.push(Math.random());
}