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

如何用纯JS将CSV字符串转换为可按键名引用的对象结构

实现方案

直接对CSVToArray返回的二维数组做聚合转换即可,代码如下:

// 原有CSV转二维数组方法保留
const CSVToArray = (data, delimiter = ",", omitFirstRow = false) =>
data.slice(omitFirstRow ? data.indexOf("\n") + 1 : 0).split("\n").map(v => v.split(delimiter));

// 新增CSV转键值对象方法
const CSVToKeyedObject = (csvStr, delimiter = ",", omitFirstRow = false) => {
  const rowList = CSVToArray(csvStr, delimiter, omitFirstRow);
  // 以每行首元素为键,整行内容为值生成对象
  return rowList.reduce((acc, curRow) => {
    // 过滤空行避免异常
    if (curRow?.length) acc[curRow[0]] = curRow;
    return acc;
  }, {});
}

// 测试调用
const testCsv = "col1,col2\na,b\nc,d";
const Obj = CSVToKeyedObject(testCsv, ",", true);

// 验证输出
console.log(Obj.a); // 返回 ["a","b"]
console.log(Obj.c); // 返回 ["c","d"]

如果不需要额外封装方法,也可以直接用一行代码完成转换:

const Obj = CSVToArray("col1,col2\na,b\nc,d", ",", true).reduce((acc, cur) => (acc[cur[0]] = cur, acc), {});

内容的提问来源于stack exchange,提问作者user3768564

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 20:36:04