2016-11-09 9 views
1

javascriptを使用して、コンテンツをCSV形式で読み込み、解析して1つの配列にロードできるようにしようとしています(合計、平均、標準偏差)のような数学演算を行います。私はテキストファイルを読んでいる限り、それを解析する助けが必要です。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]); 
}) 
+1

が重複する可能性:http://stackoverflow.com/a/12289296/1743938 –

答えて

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

あなたのコンテンツはまた、あなたの例あなたのように新しい行で区切られている場合それらをカンマで置き換えてからsplそれは彼らです。

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

これは非常によくある質問です。正規表現または文字列操作を使用できます。

この1つは、正規表現使用しています:

// 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' ] 

をそして、この1は、文字列操作を使用しています。

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?

関連する問題