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

纯Javascript导出JSON为TXT时如何给第2行及以后行尾添加*

实现方法

你只需要调整生成数据行的逻辑,在非表头的每行末尾拼接*即可,有个非常简便的修改方式:你原本代码里items.map生成的所有内容都是需要加后缀的业务数据行,表头是后续才通过unshift插入到数组首位的,所以直接在数据行生成的时候末尾加*就可以满足需求。

修改后的完整代码如下:

function download() {
      const originalData = [
        {
          name: 'Support',
          message: 'Hey! Welcome to support',
        },
        {
          name: 'Me',
          message: 'Hello there!',
        },
        {
          name: 'Support',
          message: 'What can I do for you?',
        },
      ];

      var items = originalData;
      const replacer = (key, value) => (value === null ? '' : value); // 这里定义null值的处理规则
      const header = Object.keys(items[0]);
      // 改动点:生成数据行的时候末尾直接拼接*
      let csv = items.map((row) =>
        header
          .map((fieldName) => JSON.stringify(row[fieldName], replacer))
          .join(',') + '*'
      );
      csv.unshift(header.join(','));
      csv = csv.join('\r\n');

      // 下载文件逻辑,后缀改.csv就会导出CSV格式
      var downloadLink = document.createElement('a');
      var blob = new Blob(['\ufeff', csv]);
      var url = URL.createObjectURL(blob);
      downloadLink.href = url;
      downloadLink.download = 'DataDump.txt'; // 在这里自定义文件名
      document.body.appendChild(downloadLink);
      downloadLink.click();
      document.body.removeChild(downloadLink);
    }

修改后导出的文件内容就会完全匹配你的预期。如果后续你需要调整加后缀的行规则,也可以在join('\r\n')之后把所有行按换行符拆分,遍历行的时候判断行号再做修改,不过当前场景下上面的修改方式性能最优,代码改动最小。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 17:54:05