使用javascript读取csv txt文件并将结果加载到数组中

时间:2016-11-09 19:54:50

标签: javascript arrays csv

我正在尝试使用javascript来读取包含CSV格式内容的txt文件,解析它并将其加载到单个数组中,这样我就可以对它进行数学运算(总和,平均值,标准偏差) 。我得到了阅读文本文件,我需要帮助解析它。

谢谢!

inputExample.txt

5,4,4,4,4
3,3,3,3,2
1,5,4,7,6

的index.html

<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
    <input type="file" id="openFile" />
    <br>
    <pre id="fileContents"></pre>
    <script type="text/javascript" src="app.js"></script>
</body>
</html>

app.js

document.getElementById("openFile").addEventListener('change', function(){
    var fr = new FileReader();
    fr.onload = function(){
        // document.getElementById("fileContents").textContent = this.result;
        console.log(this.result);


    }
    fr.readAsText(this.files[0]);
})

2 个答案:

答案 0 :(得分:2)

var arr = this.result.split(',');

如果您的内容也以新行分隔为示例,则可以用逗号替换它们,然后拆分它们。

var arr = this.result.replace(/\n/g, ',').split(',');

答案 1 :(得分:0)

这是一个非常常见的问题。您可以使用正则表达式或字符串操作。

这个使用正则表达式:

 // I am assuming your file has newline and carriage return, depending on your file format, it may have either of them or both of them
 var foo = "5,4,4,4,4\n\r3,3,3,3,2\n\r1,5,4,7,6";
 var regex = /(\d)(?=,|\n\r?)?/g;
 var arr = foo.match(regex);
 console.log(arr); //[ '5', '4', '4', '4', '4', '3', '3', '3', '3', '2', '1', '5', '4', '7' ]

这个使用字符串操作:

 var foo = "5,4,4,4,4\n\r3,3,3,3,2\n\r1,5,4,7,6";
 var arr = [];
 foo = foo.split('\n\r').forEach(function(el){
     el = el.split(',').forEach(x => arr.push(x));
 });
 console.log(arr); //[ '5', '4', '4', '4', '4', '3', '3', '3', '3', '2', '1', '5', '4', '7', '6' ]

查看此链接,了解如何详细解析csv。

How can I parse a CSV string with Javascript, which contains comma in data?