如何重用Papa Parse的结果数组?

时间:2018-11-29 23:34:59

标签: javascript csv parsing papaparse

我不愿意使用Papa Parse,但现在我意识到它的功能强大。我在本地文件上使用Papa Parse,但是我不知道如何使用结果。我希望能够使用结果,以便可以将数组与另一个数组合并,然后根据某个元素从高到低排序。 Console.log不起作用。根据我的研究,它可能与回调函数有关。我被卡在如何用Papa Parse做回调函数上。感谢您的任何建议。

这是我的输出

SELECT allstates.StateAbbr, count (data.StateAbbr)
FROM 
  (select distinct StateAbbr from datawarehouse) allstates 
  LEFT JOIN
  DataWarehouse data
  ON 
    allstates.stateabbr = data.stateabbr and
    data.FiscalYear = 2017 and
    data.MaltreatmentSetCode NOT IN('999', '') 

GROUP BY allstates.StateAbbr
ORDER BY allstates.StateAbbr ASC

1 个答案:

答案 0 :(得分:0)

根据与您的交谈,您似乎正在尝试根据自己的需要对Papa Parse演示进行改造。下面是一个精简的代码段,应该已为您的项目准备就绪,可以帮助您入门。

document.addEventListener('DOMContentLoaded', () => {
    const file = document.getElementById('file');
    
    file.addEventListener('change', () => {
        Papa.parse(file.files[0], {
            complete: function(results) {

                // Here you can do something with results.data
                console.log("Finished:", results.data);

            }
        });
    })
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/PapaParse/4.6.2/papaparse.js"></script>
<input type="file" id="file" />

原始答案

由于我怀疑您是从文件系统而不是上传表单中加载本地csv文件,因此您需要使用download: true使其正常工作。

Papa.parse('data.csv', {
  download: true,
  complete: function(results) {
    console.log("Finished:", results.data);
  }
});

从技术上讲,加载本地文件时,应该为Papa.parse提供一个File Object。这是MDN File API文档中的代码段

  

通常从返回的FileList对象中检索文件对象   用户使用输入元素选择文件的结果

如果您当然是在 NodeJS 中运行它,则只需执行以下操作:

const fs = require('fs');
const Papa = require('papaparse');
const csv = fs.createReadStream('data.csv');

Papa.parse(csv, {
    complete: function(results) {
        console.log("Finished:", results);
    }
});

文档

https://www.papaparse.com/docs#local-files

https://developer.mozilla.org/en-US/docs/Web/API/File