javascript エラー「TypeError: reduce of empty array with no initial value」の解決方法
- 作成日 2022.04.24
- 更新日 2022.11.22
- javascript
- javascript
javascriptで、エラー「TypeError: reduce of empty array with no initial value」が発生した場合の原因と解決方法を記述してます。「reduce」に空の配列を指定した場合に発生します。
環境
- OS macOS Monterey
- ブラウザ safari 15.5
エラー内容
以下のコードで発生。
let arr = [0, 1, 2];
arr.filter(x => x > 2).reduce((x, y) => x + y);
エラーメッセージ
TypeError: reduce of empty array with no initial value
画像
原因
「filter」関数を実行時に、配列内に指定した条件の要素が存在しないため
解決方法
配列が空でない場合のみ、実行する
let arr = [0, 1, 2];
let result = arr.filter(x => x > 2);
if ( result.length ) {
let sum = result.reduce( (x, y) => x + y);
console.log(sum);
}
このコードの場合は、条件を変更すると「reduce」が実行され総和が求められます。
let arr = [0, 1, 2];
let result = arr.filter(x => x > 0);
if ( result.length ) {
let sum = result.reduce( (x, y) => x + y);
console.log(sum);
}
実行結果
-
前の記事
Windows11 タスクバーを透明化する 2022.04.23
-
次の記事
jquery セレクトボックスで選択している値とラベルを取得する 2022.04.24
コメントを書く