我能够逐行读取文件,但我不知道如何使用制表符分隔每行.这是我的代码.需要一些关于这个问题的帮助
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Sum of a Column in JavaScript</title>
</head>
<input type="file" name="file" id="file">
<script type="text/javascript">
document.getElementById('file').onchange = function(){
var file = this.files[0];
var reader = new FileReader();
reader.onload = function(progressEvent){
// Entire file
console.log(this.result);
// By lines
var lines = this.result.split('\n');
for(var line = 0; line < lines.length; line++){
// By tabs
var tabs = lines[line].split('\\t');
for(var tab = 0; tab < tabs.length; tab++){
alert(tabs[tab]);
}
}
};
reader.readAsText(file);
};
</script>
解决方法
我发现这很有用,并用js .map()函数替换了for …循环.另外,我将数据加载到数组中:
// By lines
var arr1 = [];
var arr2 = [];
var arr3 = [];
var arr4 = [];
var arr5 = []; // assuming 5 tabs
var lines = this.result.split('\n');
lines.map(function(item){
var tabs = item.split('\t');
console.log("0",tabs[0],"1",tabs[1],"2",tabs[2],"3",tabs[3],"4",tabs[4],"5",tabs[5],"6",tabs[6]);
arr1.push(tabs[0]);
arr2.push(tabs[1]);
arr3.push(tabs[2]);
arr4.push(tabs[3]);
arr5.push(tabs[4]);
});
// test two of the arrays after reading:
for (var i = 0; i < mdarr.length; i++) {
console.log(arr1[i],arr2[i]);
};
}
reader.readAsText(file);
};