javascript エラー「Uncaught RangeError: Invalid array length」の解決方法
- 作成日 2022.06.10
- 更新日 2022.12.22
- javascript
- javascript
javascriptで、エラー「Uncaught RangeError: Invalid array length」が発生した場合の原因と解決方法を記述してます。配列の「length」にマイナスや小数などの値を指定した際に発生します。
環境
- OS windows11 pro 64bit
- Apache 2.4.43
- ブラウザ chrome 108.0.5359.125
エラー内容
以下の「length」の値を「-1」に設定したコードで発生。
let arr = [1,2,3];
arr.length = -1;
エラーメッセージ
Uncaught RangeError: Invalid array length
画像
firefox(バージョン107)でも、同様のエラーとなります。
Uncaught RangeError: invalid array length
画像
safari(15.5)でも、同様のエラーとなります。
RangeError: invalid array length
画像
原因
length プロパティに代入できる値は、整数値しか取れないため、マイナスを指定するとエラーになります。
解決方法
整数値を指定するか、
let arr = [1,2,3];
arr.length = 1;
もしくは絶対値を使用します。
let arr = [1,2,3];
arr.length = Math.abs(-1);
console.log(arr); // [1]
ちなみに、文字列の数値を使用してもエラーにはなりません。
let arr = [1,2,3];
arr.length = '2';
console.log(arr); // [1, 2]
ただし、小数を指定すると同じエラーが発生します。
let arr = [1,2,3];
arr.length = 2.2; // Uncaught RangeError: Invalid array length
-
前の記事
sqlite 少数以下を四捨五入する 2022.06.09
-
次の記事
Linux コマンドでwhois情報を取得する 2022.06.10
コメントを書く