我正在处理使用PapaParse作为CSV解析器的CSV上传器。对于我的CSV,我希望我的第一列充当解析数据的标题,而不是第一行。为了获得预期的结果,我在上传之前必须在编辑器中手动转置CSV。
原因是我的用户发现当标题位于第一列而不是第一行时,编辑CSV会更容易。我有没有办法在PapaParse(甚至是PapaParse之外的JavaScript)中做到这一点?
if (file != null) {
Papa.parse(file, {
header: true,
complete: function (results, file) {
console.log("Parsing complete: ", results, file);
}
});
}
答案 0 :(得分:1)
我建议用PapaParse解析数组,然后用JS对结果进行转置。
使用此方法:https://stackoverflow.com/a/4492703/1625793
所以它看起来像transpose(result.data)
- 更新 -
const transposed = transpose(result.data)
const headers = transposed.shift();
const res = transposed.map(row => row.reduce((acc, col, ind) => {acc[headers[ind]] = col; return acc}, {}))