【问题标题】:Is there anyway i can get headers on a row while converting json to csv using papaparse无论如何我可以在使用 papaparse 将 json 转换为 csv 时连续获取标题
【发布时间】:2021-09-01 18:03:20
【问题描述】:

我想将 json 转换为 csv 在 papaparse 它工作正常但我想按行转换它 例如

 1. a            b         c         d
 -
 2. Heading 1 answer 1_0 answer 1_1 answer 1_2
 3. Heading 2 answer 2_0 answer 2_1 answer 2_2

等等 那么它有什么功能吗,我可以使用它 代码:

let csv = Papa.unparse(newArray,{
      quotes: false, //or array of booleans
      quoteChar: '"',
      escapeChar: '"',
      delimiter: ",",
      header: true,
      newline: "\r\n",
      skipEmptyLines: false, //other option is 'greedy', meaning skip delimiters, quotes, and whitespace.
      columns: indexes //or array of strings
    });
    console.log(csv);

我收到的输出:- output 1

我想要的输出: output 2

谢谢

【问题讨论】:

  • 你试图做什么?你的代码呢?
  • @Mohamed.Karkotly 已更新,如果您知道请提供任何解决方案
  • 为了优化解决方案,能否请您确认您要在Node.js 项目中使用该解决方案?
  • 是的@Mohamed.Karkotly nodejs

标签: javascript node.js json csv papaparse


【解决方案1】:

考虑到你的数据,你在 Vanilla JS 中得到的输出是这样的:

var csv = [
  ["task", "assignee", "date", "remarks"],
  ["1", "abc", "dd/mm/yyyy", "-"],
  ["2", "def", "dd/mm/yyyy", "-"],
];

现在我们需要做的实际上是将列反转为行,将行反转为列。

underscore.js 有一个函数可以做到这一切,这是我建议的一个库。安装使用命令

npm install underscore

然后在你的模块中

var _ = require('underscore');

反码:

var inversedData = _.zip(...data);
console.log(inversedData);

按照 Vanilla JS 解决方案

var data = [
  ["task", "assignee", "date", "remarks"],
  ["1", "abc", "dd/mm/yyyy", "-"],
  ["2", "def", "dd/mm/yyyy", "-"],
];
var inversedArray = data;
const zip = () => {
  inversedArray = data.map((value, idx) => [value, ...data.map((data) => data[idx])]);
  console.warn(inversedArray);
};

【讨论】:

    猜你喜欢
    • 2021-08-29
    • 2016-05-09
    • 2022-11-24
    • 1970-01-01
    • 1970-01-01
    • 2017-04-08
    • 2014-10-22
    • 1970-01-01
    • 2015-12-22
    相关资源
    最近更新 更多