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

如何将对象数组转换为CSV格式对应的字符串数组

JavaScript对象数组转CSV格式字符串数组实现

基础实现(适用于字段值无特殊字符的场景)

直接通过取对象键生成表头、遍历取值拼接行即可,刚好适配你给出的示例场景:

function convertToCSVArr(objArr) {
  // 取第一个对象的键拼接为CSV表头行
  const header = Object.keys(objArr[0]).join(',');
  // 遍历每个对象,取出所有值拼接为数据行
  const dataRows = objArr.map(item => Object.values(item).join(','));
  // 合并表头和数据行返回最终数组
  return [header, ...dataRows];
}

// 调用示例
const arrayObject = [
  {
    Name: "Alex",
    Age: 16,
    Address: "Miami",
  },
  {
    Name: "James",
    Age: 36,
    Address: "LA",
  },
  {
    Name: "Mark",
    Age: 25,
    Address: "San Diego",
  },
];
const result = convertToCSVArr(arrayObject);
console.log(result);
// 输出结果和你期望的完全一致:['Name,Age,Address', 'Alex,16,Miami', 'James,36,LA', 'Mark,25,San Diego']

兼容特殊字符的优化实现

如果你的字段值中包含逗号、双引号、换行这类CSV特殊字符,建议使用下方优化版本,避免出现列错位问题:

function convertToCSVArr(objArr) {
  // 格式化字段值,处理特殊字符
  const formatField = (val) => {
    const str = String(val);
    // 存在特殊字符时用双引号包裹,内容中的双引号转义为两个双引号
    if (/[,"\n]/.test(str)) {
      return `"${str.replace(/"/g, '""')}"`;
    }
    return str;
  };

  const header = Object.keys(objArr[0]).map(formatField).join(',');
  const dataRows = objArr.map(item => Object.values(item).map(formatField).join(','));
  return [header, ...dataRows];
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 09:39:03