javascript - 逐行读取制表符分隔的文件,而不是使用制表符分隔的分割每一行
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/28927640/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
javascript - read tab delimited file, line by line than split each line using tab delimited
提问by Jean-Marc Flamand
I'm able to read a file line by line but I do not know how to split each lines using the tab delimited. here my code. Need some help on this issue
我能够逐行读取文件,但我不知道如何使用制表符分隔来分割每一行。这是我的代码。在这个问题上需要一些帮助
<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>
回答by Magnus Tvedt
I found this useful, and replaced the for ... loops with the js .map() function. Also, I load data into arrays:
我发现这很有用,并用 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);
};
回答by JosiahYoder-deactive except..
Here is how I converted a tab delimited file to a tree format in Node
这是我在 Node 中将制表符分隔文件转换为树格式的方法
var inputFile='Tree.tab'
fs = require('fs');
tree = {}
fs.readFile(inputFile, 'ascii', function(err, data) {
if(err) {
console.log(err);
}
lines = data.split('\r\n');
lines.map(function(line){
levels = line.split("\t");
if(typeof tree[levels[0]] === "undefined") {
tree[levels[0]] = {}
}
node = tree[levels[0]]
for ( var i = 1; i < levels.length; i++) {
if(typeof node[levels[i]] === "undefined") {
node[levels[i]] = {}
}
}
});
console.log(tree);
});

