这两个是 JavaScript 里处理字符串、数组最常用、最核心的方法,专门用来做日志解析、数据格式化,我用最简单、最实用的方式给你讲清楚,直接就能用在日志处理里。

一、split() —— 字符串切分(把一行日志切成字段)

作用:把一个字符串,按照你指定的分隔符,切成数组

1. 基本语法

字符串.split(分隔符)

2. 日志场景示例(最常用)

日志行:

2025-03-19|INFO|user123|/api/login|20ms

| 分割:

const line = "2025-03-19|INFO|user123|/api/login|20ms";

const arr = line.split('|'); 
// 结果:["2025-03-19", "INFO", "user123", "/api/login", "20ms"]

3. 常用分隔符

  • split('|') 按竖线切
  • split(',') 按逗号切(CSV)
  • split(' ') 按空格切
  • split(':') 按冒号切

4. 直接解构取值(日志解析神器)

const [time, level, userId, api, cost] = line.split('|');

一行就把日志字段全部拆出来!


二、map() —— 数组遍历加工(批量处理日志)

作用:遍历数组里的每一项,加工/转换后返回一个新数组

1. 基本语法

数组.map(function(每项){ return 新值 })

2. 最简单示例

const arr = [1, 2, 3];
const newArr = arr.map(item => item * 2); 
// [2,4,6]

3. 日志处理最常用:格式化字段

const line = "2025-03-19|INFO|user123|100";
const arr = line.split('|'); 

// 把最后一个耗时字符串转成数字
const result = arr.map((item, index) => {
  if(index === 3) return Number(item);
  return item;
});

// 结果:["2025-03-19", "INFO", "user123", 100]

4. 组合成对象(日志最终格式)

const [time, level, userId, cost] = arr;
const log = { time, level, userId, cost: Number(cost) };

三、split + map 组合实战(日志解析标准写法)

const line = "2025-03-19|ERROR|user456|500";

// 1. split 切分
const arr = line.split('|'); 

// 2. map 格式化
const [time, level, userId, code] = arr.map((val, i) => {
  return i === 3 ? Number(val) : val;
});

// 3. 生成结构化日志
const log = { time, level, userId, code };

最终结果

{
  time: "2025-03-19",
  level: "ERROR",
  userId: "user456",
  code: 500  // 数字类型
}

四、超简记忆口诀

  • split:字符串 → 数组(
  • map:数组 → 新数组(
  • 日志处理 = split 切分 + map 格式化

总结

  1. split:按符号把字符串切成数组,用于拆分行日志
  2. map:遍历数组并修改每一项,用于字段类型转换
  3. 两个一起用,就是 JavaScript 处理日志的标准组合

需要我给你写一个可直接运行的完整日志解析小工具吗?

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐