JavaScriptでループ処理を使ってnull以外かつ空でない値をカウントする方法
JavaScriptで配列内の「null以外かつ空でない値」の個数を数えたい場面はよくあります。本記事では、forEach()メソッドを使って配列をループ処理し、有効な値をカウントする方法を解説します。
サンプルデータの準備
まず、以下のような配列を用意します。
let subjectNames = ['JavaScript', 'Angular', 'AngularJS', 'Java'];
forEach()の基本構文
nullや空文字ではない値をカウントするには、forEach()メソッドを使用します。基本構文は以下のとおりです。
yourArrayName.forEach(anyVariableName => {
yourStatement1
.
.
.
N
})
if文で条件チェックを行う
次に、if文を使って各要素が空でないか、nullでないかを判定します。条件を満たす場合にのみカウンターを増加させます。
var count = 0;
subjectNames.forEach(subject => {
if (subject != ' ' || subject != null) {
count += 1;
}
})
完全なコード例
以下に、実際に動作する完全なコードを示します。
let subjectNames = ['JavaScript', 'Angular', 'AngularJS', 'Java'];
var count = 0;
subjectNames.forEach(subject => {
if (subject != ' ' || subject != null) {
count += 1;
}
});
console.log("科目の数==" + count);
プログラムの実行方法
上記のプログラムを実行するには、Node.js環境で以下のコマンドを使用します。
node fileName.js
ここでは、ファイル名をdemo47.jsとして保存したものとします。
実行結果
プログラムを実行すると、以下のような出力が得られます。
PS C:\Users\Amit\JavaScript-code> node demo47.js 科目の数==4
配列内のすべての要素がnullでも空文字でもないため、カウント結果は「4」となります。
補足:より厳密な判定方法
なお、上記の条件式subject != ' ' || subject != nullは論理的に常にtrueになる点に注意が必要です。より厳密に空値を除外したい場合は、以下のように書くことをおすすめします。
let subjectNames = ['JavaScript', '', null, 'Java', undefined];
var count = 0;
subjectNames.forEach(subject => {
if (subject !== null && subject !== undefined && subject !== '') {
count += 1;
}
});
console.log("有効な科目の数==" + count); // 結果: 2
このように&&(AND)で条件を組み合わせることで、null、undefined、空文字を正確に除外できます。
-
JavaScriptでfalsy値(偽と評価される値)を見分ける方法
JavaScriptにおけるfalsy値とはJavaScriptでは、値をBoolean型として評価したときに「false」とみなされる値がいくつか存在します。これらは「falsy値(偽の値)」と呼ばれます。条件分岐や論理演算において、意図しない動作を防ぐために、どの値がfalseと評価されるかを正しく理解しておくことが重要です。JavaScriptでfalseと評価される主な値は以下の通りです。false — Boolean型のfalseそのもの0 — 数値のゼロ空文字列:、、または ``(テンプレートリテラル)null — 値が存在しないことを示す特殊な値undefined — 値が未定義
-
【初心者向け】HTMLフォームの値をJavaScriptで取得してコンソールに表示する方法
HTMLフォームに入力された値を取得するには、valueプロパティを使用します。本記事では、テキストボックスに設定された値をJavaScriptで読み取り、ブラウザのコンソールに出力する方法を、実際のコード例とともに解説します。取得対象となるHTMLフォームの例まず、以下のようなテキスト入力フィールドがあるとします。<input type="text" id="getValues" value="My Name is John Smith" />このinput要素には、id属性として「getValues」が設定され、初期値