如何将Papa.parse结果放入数组

时间:2018-06-24 19:15:55

标签: papaparse

预警,我是js的新手,我制作的以下代码摘自 Retrieve parsed data from CSV in Javascript object (using Papa Parse)

我的目标=将一个csv文件解析为一个数组,并在其他一些操作中使用该数组。我可以看到文件已通过“ console.log(“ Row:”,row.data);“正确解析,但是我无法弄清楚如何将整个数组/数据集转换为单独的变量,更不用说将其转换为单独的变量了“ doSAtuff”功能。

function parseData(url, callBack) {
  Papa.parse(url, {
        download: true,
        header: true,
        dynamicTyping: true,
        comments: "*=",
        step: function(row) {
            console.log("Row:", row.data);
        },
        complete: function(results) {
          callBack(results.data);
        }
    });
}

function doStuff(data) {
    //Data should be usable here, but is emtp
    console.log("doStuff - console log '" + data + "' ?");
}

parseData(inputFile, doStuff);

认为我想做类似的事情...

var csvArray = [];

csvArray = Papa.parse(url, {
        download: true,
        header: true,
        dynamicTyping: true,
        comments: "*
...

<some other stuff with csvArray>

但是我现在有点被车轴缠住了。

2 个答案:

答案 0 :(得分:0)

我知道,如果您删除了header: true设置,那么Papa.parse将返回一个数组而不是对象。

或者,您也可以使用以下方法将返回的对象转换为数组:

function _arrayify(obj) { return Object.keys(obj).map(function (k) { return obj[k]; }) }

答案 1 :(得分:0)

const url = "https://www.papaparse.com/resources/files/normal.csv";

let results;

const csvData = Papa.parse(url, {
      dynamicTyping: true,
      download: true,
      header: true,
      comments: "*=",
      complete: function(data) {
        results = data.data
      }
});

setTimeout(()=> {
  console.log(results[0].ISSN)
}, 1500);
<script src="https://cdnjs.cloudflare.com/ajax/libs/PapaParse/4.5.0/papaparse.min.js">
</script>