如何将本地文本文件读取为本地html,以及如何将内容读取为javascript数组?
<html>
<head>
<script>
window.onload = function () {
document.getElementById('myfile').onchange = readFile;
};
function readFile() {
file = this.files[0];
var fReader = new FileReader();
fReader.onload = function (event) {
document.getElementById('fileContent').value = event.target.result;
};
fReader.readAsText(file);
}
</script>
</head>
<body>
<p> <input id="myfile" type="file" /></p>
<textarea id="fileContent" cols="68" rows="10" ></textarea>
</body>
</html>
它可以读取文本文件并在html上打印。
但是如何在javascript中转换为数组?
我想要的javascript数组如下:
<script type="text/javascript">
var dataset = [
[0,619804,7,128],
[1,638224,6327,128],
[2,639157,12342,64],
[1,639157,6440,64],
[3,645597,173,21],
[4,645597,150,21],
[5,645597,301,22],
[6,645747,12153,17],
[7,645898,15367,47],
[8,646393,7650,22],
[9,646393,321,21],
[10,646393,18049,21],]
</script>
答案 0 :(得分:0)
如果我猜您的文本文件采用以下格式:
8,646393,7650,22
9,646393,321,21
10,646393,18049,21
...
因此,您只需要用\ r \ n拆分即可转换为数组。
var resultText = event.target.result;
var array = resultText.split('\r\n');
我有一个像这样的数组:
[
"8,646393,7650,22",
"9,646393,321,21",
"10,646393,18049,21"
]
因此,如果要将其转换为数组类型,则只需:
var newArray = [];
for (var i = 0, max = array.length; i < max; i++) {
newArray.push([array[i]])
}
您应该有这个:
[
[
"8,646393,7650,22"
],
[
"9,646393,321,21"
],
[
"10,646393,18049,21"
]
]