在Javascript中从For循环中的另一个数组填充数组
我正在根据logfile.txt的输出创建健康监视器。我将整个日志读取到一个数组中,然后在for循环中处理该数组在Javascript中从For循环中的另一个数组填充数组,javascript,arrays,for-loop,Javascript,Arrays,For Loop,我正在根据logfile.txt的输出创建健康监视器。我将整个日志读取到一个数组中,然后在for循环中处理该数组 var txtFile = new XMLHttpRequest(); txtFile.open("GET", "EarLog.txt", true); txtFile.onreadystatechange = function() { if (txtFile.readyState === 4 && txtFile.status === 200) {
var txtFile = new XMLHttpRequest();
txtFile.open("GET", "EarLog.txt", true);
txtFile.onreadystatechange = function() {
if (txtFile.readyState === 4 && txtFile.status === 200) {
allText = txtFile.responseText;
lines = txtFile.responseText.split("\n");
}
var i = 0;
var name;
var status;
for (i = 5; i < 31; i++) {
var res = lines[i].split(": ");
name = res[0]
status = res[1];
}
document.write("<br>" + name[1] + "<br>")
}
txtFile.send(null);
但是,不是用每个ear的名称填充名称,而是用最后一行读取的每个字母填充名称,在本例中是communications.ear
document.write(name[10])
它不显示第十只耳朵,而是显示上次读取的耳朵的第十个字母。状态也会出现同样的问题。基本上,我希望能够调用变量名[1],让它显示字符串“portal.ear”,调用变量状态[1],让它显示字符串“checked out”,依此类推。将代码块更改为:
var i=0;
var name = [];
var status = [];
for (i = 5; i < 31; i++) {
var res = lines[i].split(": ");
name.push(res[0]);
status.push(res[1]);
}
var i=0;
变量名称=[];
var状态=[];
对于(i=5;i<31;i++){
var res=行[i]。拆分(“:”;
name.push(res[0]);
状态推送(res[1]);
}
基本上,您将值存储在一个不在数组中的变量中,因此当您调用name[10]时,它实际上是指字符串变量而不是字符串[]。变量
name
和status
是字符串,而不是数组。因此,当您尝试访问第n个元素时,您会得到第n个字母
如果希望它们是数组,请更改:
var name;
var status;
致:
然后使用push方法填充数组。更改:
name = res[0]
status = res[1];
致:
然后,您可以将存储在名称/状态数组中的字符串引用为名称[10]、状态[23]等。尝试将document.write调用放入for循环中。当我这样做时,效果很好。但是我需要能够在for循环之外操纵输出。document.write调用实际上只是为了调试,所以我可以看到它在internet浏览器中打印的内容。
var name = [];
var status = [];
name = res[0]
status = res[1];
name.push(res[0]);
status.push(res[1]);