Javascript 有没有办法将csv数据转换为值数组

Javascript 有没有办法将csv数据转换为值数组,javascript,typescript,lodash,Javascript,Typescript,Lodash,我添加了jsfiddel链接。到目前为止我都试过了。任何帮助都将不胜感激。谢谢 leselect(输入)上的函数{ //this.itemHeaderName=itemHeaderName; var files=input.files; var-csvData; if(files&&files.length){ var fileToRead=files[0]; var fileReader=newfilereader(); readAsText(fileToRead,'UTF-8'); fil

我添加了jsfiddel链接。到目前为止我都试过了。任何帮助都将不胜感激。谢谢

leselect(输入)上的函数{ //this.itemHeaderName=itemHeaderName; var files=input.files; var-csvData; if(files&&files.length){ var fileToRead=files[0]; var fileReader=newfilereader(); readAsText(fileToRead,'UTF-8'); fileReader.onloadend=函数(x){ csvData=fileReader.result; onFileLoad(csvData); } } } 函数onFileLoad(fileLoadedEvent){ var csvsepator=','; var textFromFileLoaded=fileloadevent; var csv=[]; var rows=textFromFileLoaded.split('\n'); _.forEach(行、函数(元素){ var col=[]; col=元素拆分(CSVSepator); csv.push(col); }); }


内部循环从数组中提取每个值,找出出现双引号的位置,然后用-

geez替换该双引号,CSV数据没有太多的逗号。您可以解释您想要的是什么吗?
“子复合”、“2”、“顶部”、“喷嘴”、“块”、“9100”在哪里“
来自。。。不是可以确定的数据csv的问题是,您可以有
“数据,带逗号”
,该数据应被视为单个值,因为它周围有引号。。。因此,您需要按程序处理此类情况。在这种情况下,你可能需要在值中加引号,所以你也需要处理这个问题。。。如果数据中有
,那会怎么样…这是一个复杂的字段,在CSV中总是可能的,所以,你也需要解析它…正确解析CSV是一件非常复杂的事情-一想到它就让我结巴…papaparse(dot.com)
rows.forEach(element => {
if (element.indexOf('"') >= 0) {
const str = element.slice(element.indexOf('"'), element.length);
const str1 = element.slice(0,element.indexOf('"'));
element = str1 + str.replace(/[',]+/g, '-');
}