continue用于跳过当前循环迭代,处理日志时可跳过空行、非法json或字段缺失的行;需在for或for...of中使用,不可用于foreach;正则预筛可提升性能。

在 JavaScript 中,continue 语句用于跳过当前循环迭代的剩余部分,直接进入下一次循环。处理日志数据时,若某行格式错误、缺失关键字段或内容为空,可用 continue 快速跳过,避免后续逻辑出错或污染结果。
判断日志行是否有效再跳过
通常日志是字符串数组(如按行分割的文本),每行需先校验结构。常见无效情况包括:空行、非 JSON 格式、缺少 timestamp 或 level 字段等。
示例:
- 用
trim()去除首尾空白,空字符串直接continue - 尝试
JSON.parse(),捕获SyntaxError并跳过 - 检查解析后对象是否包含必需属性,不满足则
continue
配合 for...of 或 for 循环使用
continue 只在循环体内生效,不能用于 forEach 或其他高阶函数(它们不支持 continue)。推荐用 for...of 遍历日志行:
Java项目代码review工具。分析Git变更+完整调用链路上下文,推断业务需求,进行多维度评分和分类汇总,生成完整PRD文档。包含细粒度Java代码审查清单(Null安全、异常处理、Streams、并发、equals/hashCode、资源管理、API设计、性能、MyBatis/ORM、事务边界、SQL/DD...
const logs = ['{"level":"info","msg":"ok"}', '', '{"msg":"missing level"}', '{"level":"error","msg":"fail"}'];
const validLogs = [];
for (const line of logs) {
if (!line.trim()) continue; // 跳过空行
let entry;
try {
entry = JSON.parse(line);
} catch {
continue; // 跳过非法 JSON
}
if (!entry.level || !entry.msg) continue; // 字段不全跳过
validLogs.push(entry);
}
结合正则快速过滤特定无效模式
如果日志有固定无效前缀(如调试用的 DEBUG:、注释行 // 或时间戳格式错误),可用正则预筛:
if (/^(\s*#|\s*\/\/|\s*DEBUG:)/.test(line)) continue;-
if (!/^\d{4}-\d{2}-\d{2}T/.test(line)) continue;(强制要求 ISO 时间开头)
这类检查放在 JSON 解析前,能减少不必要的解析开销。
注意:不要在 try...catch 外部依赖 continue
continue 必须写在循环体内部。常见错误是把校验逻辑抽成函数并期望在函数里 continue —— 这不行,因为 continue 只对最近的合法循环起作用。应保持校验逻辑在循环块内,或改用 return 配合 filter() + 独立校验函数。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










