Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Javascript中从For循环中的另一个数组填充数组_Javascript_Arrays_For Loop - Fatal编程技术网

在Javascript中从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) {

我正在根据logfile.txt的输出创建健康监视器。我将整个日志读取到一个数组中,然后在for循环中处理该数组

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]);