You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将制表符分隔的CSV字符串转为无表头的JavaScript对象数组?

解决制表符分隔CSV转JavaScript对象数组的问题

可以通过以下步骤实现将制表符分隔的CSV字符串转换为不含表头的对象数组:

  1. 分割CSV字符串为行:按换行符拆分字符串,过滤掉空行避免无效数据。
  2. 提取并处理表头:取第一行作为表头,按制表符拆分后去掉每个字段的前后引号。
  3. 处理数据行:遍历剩余行,每行按制表符拆分后清理字段的引号,再与表头对应生成对象。

实现代码

function parseTabSeparatedCSV(csvString) {
  // 分割行并过滤空行
  const lines = csvString.split('\n').filter(line => line.trim() !== '');
  if (lines.length === 0) return [];

  // 处理表头:去掉引号,得到键名数组
  const headers = lines[0].split('\t').map(header => header.replace(/^"|"$/g, ''));

  // 处理数据行,生成对象数组
  const result = [];
  for (let i = 1; i < lines.length; i++) {
    const fields = lines[i].split('\t').map(field => field.replace(/^"|"$/g, ''));
    const rowObj = {};
    headers.forEach((header, index) => {
      rowObj[header] = fields[index] || '';
    });
    result.push(rowObj);
  }

  return result;
}

// 测试示例
const csvStr = `"Name"  "Address"   "Central"   "Unfiltered"    "Description"   "DatapointType" "Security"
"Placeholder1"  "0/0/-" ""  ""  ""  ""  "Auto"
"Placeholder2"  "0/-/-" ""  ""  ""  ""  "Auto"
"Placeholder3"  "0/0/1" ""  ""  ""  "DPT-1" "Auto"
"Placeholder4"  "0/0/2" ""  ""  ""  "DPT-3" "Auto"`;

const dataArray = parseTabSeparatedCSV(csvStr);
console.log(dataArray);

代码说明

  • split('\n') 将CSV按行拆分,filter 清理空行避免解析错误。
  • split('\t') 按制表符拆分每行的字段,适配你的制表符分隔格式。
  • replace(/^"|"$/g, '') 移除字段前后的双引号,还原真实字段值。
  • 遍历数据行时,将每个字段与表头键名一一对应,生成结构化的对象。

内容的提问来源于stack exchange,提问作者David Küng

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 02:24:22