读取制表符分隔的文件,逐行读取,而不是使用制表符分隔拆分每一行
read tab delimited file, line by line than split each line using tab delimited
我可以逐行读取文件,但我不知道如何使用分隔的制表符拆分每一行。 这是我的代码。需要有关此问题的帮助
<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>
我发现这很有用,并替换了 for ...使用 js .map() 函数循环。另外,我将数据加载到数组中:
// 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);
};
这可以用一行话来完成。首先按新行拆分,然后按制表符拆分。结果是一个 2D 数组,其中第一项是标题行。
const parsedString = tabbedString.split(''n').map((line) => line.split(''t'))
例
const tabbedString = `Prefix Name Last Name Email Phone Age Role
Jim Loco jilo@fox.com 32 Admin
Mrs. Sara Foo safoo@fox.com 124389 44 Admin
Mr. John Deer jodeer@fox.com 37 Developer`
const parsedString = tabbedString.split(''n').map((line) => line.split(''t'))
console.log(parsedString)
[
[
"Prefix",
"Name",
"Last Name",
"Email",
"Phone",
"Age",
"Role"
],
[
"",
"Jim",
"Loco",
"jilo@fox.com",
"",
"32",
"Admin"
],
[
"Mrs.",
"Sara",
"Foo",
"safoo@fox.com",
"124389",
"44",
"Admin"
],
[
"Mr.",
"John",
"Deer",
"jodeer@fox.com",
"",
"37",
"Developer"
]
]
请注意,堆栈溢出用 4 个空格替换制表符,因此在输入字符串中,您实际上会找到 4 个空格而不是制表符,但在我的原始代码中,它们确实是制表符。
这是我如何在 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);
});
相关文章:
- 从桌面读取python文件时高亮显示代码
- Javascript-如何读取json文件中的列并将其保存在Javascript数组中
- 使用Dnamics CRM 2011中的JavaScript读取子网格的所有记录,而不考虑活动页面
- 节点Js:How to catch a“;没有这样的文件或目录“;读取线模块出错
- TypeError:无法读取属性'推'未定义的JavaScript
- 同样,同样的错误'ahorcado.js:26未捕获类型错误:无法读取属性'beginPath'
- 未捕获的TypeError无法读取未定义的属性socialsharing
- 如何在读取XLS/XLSX本地文件时,使用IE的javascript代码启用未标记为安全的ActiveX控件
- 字符串在将其传递给另一个活动Android JavaScript时读取Null
- NodeJS-readline暂停和恢复事件发射器(逐行读取)
- 未捕获的类型错误:无法读取属性'删除'的未定义
- AngularJS指令出错-无法读取属性'编译'的未定义
- 未捕获的类型错误:无法读取属性'name'即使它存在,也无法定义
- 如何在Javascript中读取unsigned int
- 读取制表符分隔的文件,逐行读取,而不是使用制表符分隔拆分每一行
- 使用 d3 或 ajax 读取本地文件文本(制表符分隔值)会导致 Firefox 开发控制台中的语法错误
- 如何从文本文件中读取变量,逗号分隔的变量到javascript数组
- 如何在JavaScript中读取对象的空格分隔键
- 如何在从逗号分隔的文本文件中读取的行中创建子字符串
- 读取HTML格式中以逗号分隔的值