Javascript React-使用papaparse将一些csv列转换为数组
我正在使用Javascript React-使用papaparse将一些csv列转换为数组,javascript,json,reactjs,papaparse,react-dropzone,Javascript,Json,Reactjs,Papaparse,React Dropzone,我正在使用papaparse读取csv文件,然后将该文件转换为对象数组。我使用react dropzone上传文件,然后将其转换为对象数组。但我需要所有的标题都是小写的,在某些列之间没有空格,以数组的形式显示数据 这是我的csv文件 | Name | Age | Data one | Data two | -------|-----|----------|----------| | John | 23 | A, B | C | -------|-----|--------
papaparse
读取csv文件,然后将该文件转换为对象数组。我使用react dropzone
上传文件,然后将其转换为对象数组。但我需要所有的标题都是小写的,在某些列之间没有空格,以数组的形式显示数据
这是我的csv文件
| Name | Age | Data one | Data two |
-------|-----|----------|----------|
| John | 23 | A, B | C |
-------|-----|----------|----------|
| Jane | 40 | E, F | G, H |
-------|-----|----------|----------|
这是我的密码:
import React from "react";
import Dropzone from "react-dropzone";
import Papa from 'papaparse';
const App = () => {
const handleOnDrop = (acceptedFiles) => {
// acceptedFiles is the actual file uploaded by user
Papa.parse(acceptedFiles[0], {
header: true,
complete: (results) => {
console.log(results)
}
})
}
}
OutPut:
[
{
Name: "John",
Age: "23",
Data one: "A, B",
Data two: "C"
},
{
Name: "Jane",
Age: "40",
Data one: "E, F",
Data two: "G, H"
}
]
我需要的输出是:
[
{
name: "John",
age: "23",
dataone: ["A", "B"], // Each individual data should be a string
datatwo: ["C"]
},
{
name: "Jane",
age: "40",
dataone: ["E", "F"],
datatwo: ["G", "H"]
}
]
我不熟悉
papaparse
,也不确定它是如何完成的在parse
的第二个参数中,您可以为键transformHeader
提供一个函数来转换列名。例如,(headerName)=>headerName.toLowerCase().replaceAll('',)
第二个问题与papaparse无关。您可以使用results.map(result=>{…result,dataone:result.dataone.split(',')})
并对datatwo执行相同的操作。这两个列名是预先知道的,还是需要动态工作,并且需要用逗号应用于所有字符串
列名位于数组中时,请使用以下代码
results.map(result => {
for(const column of columnsToconvertToArray) {
result[column] = result[column].split(', ');
}
return result;
});
必须转换为数组的列名是已知的。例如:columnsToconvertToArray=[“dataone”,“datatwo”]。所以我想在papaparse中使用
columnsToconvertToArray
将单元格转换为这些列本身的数组@Michiel@iCodeByte我延长了我的回答。它能满足你的需要吗?是的。这很有效。谢谢