では、より 実務的な複雑データでの continue 利用例 を作ります。
実務シナリオ:社員データを処理して条件に合う人だけ出力・スキップする
想定データ:社員情報(部署・ステータス・評価)がネストした配列オブジェクトで格納されている場合。
const departments = [
{
name: "営業部",
employees: [
{name: "Alice", active: true, score: 85},
{name: "Bob", active: false, score: 70},
{name: "Charlie", active: true, score: 50}
]
},
{
name: "開発部",
employees: [
{name: "David", active: true, score: 95},
{name: "Eve", active: true, score: 60},
{name: "", active: true, score: 80} // 名前が空
]
}
];
JavaScript目標:
- 名前が空 or 非アクティブはスキップ
- 評価(score)が 70 未満はスキップ
- 条件を満たす社員を「部署名 + 名前 + 評価」で出力
実装例
for (const dept of departments) {
for (const emp of dept.employees) {
// 条件1: 名前空欄 → スキップ
if (!emp.name) continue;
// 条件2: 非アクティブ → スキップ
if (!emp.active) continue;
// 条件3: 評価70未満 → スキップ
if (emp.score < 70) continue;
// 条件を全てクリアした場合だけ出力
console.log(`${dept.name} - ${emp.name}: 評価 ${emp.score}`);
}
}
JavaScript出力結果
営業部 - Alice: 評価 85
開発部 - David: 評価 95
開発部 - Eve: 評価 60 ← これはスコア < 70 のため実際にはスキップされます
✅ 解説:
- 複雑なネストデータでも
continueは使える - 条件が多くても、ネストを深くせずに順番にスキップできる
- 「条件を満たしたものだけ処理する」パターンは実務で非常に多い(データ検証、レポート出力、バッチ処理など)
応用:外側ループのスキップ(部署ごと飛ばす)
例えば、ある部署にスコア70以上の社員がいなかった場合、その部署の残り社員は処理せず次の部署に進めたい場合。
departmentLoop: for (const dept of departments) {
let hasHighScore = false;
for (const emp of dept.employees) {
if (!emp.name || !emp.active || emp.score < 70) continue;
hasHighScore = true;
console.log(`${dept.name} - ${emp.name}: 評価 ${emp.score}`);
}
if (!hasHighScore) continue departmentLoop; // この部署に高評価社員なし → 次の部署へ
}
JavaScript✅ ポイント:
- 内側ループで条件に当たる社員がいなければ、フラグで判断して 外側ループもスキップ
- ラベル
departmentLoopで外側ループの continue を実現 - 実務では「部署単位」「グループ単位」での条件チェックに便利
まとめ(実務向けポイント)
- ネストした配列・オブジェクトでも
continueは有効 - 条件が複数でもガード節にして順番に書くと読みやすい
- 部署単位・グループ単位でのスキップはラベルやフラグで実現できる
- 実務で多い処理パターン:
- データ検証・バリデーション
- レポート出力で条件外を除外
- バッチ処理で不要な処理をスキップ
