我创建了这样一个数组:
var gelenveri = document.getElementById("cakalinput").value;
var arrayal = [];
arrayal = gelenveri.split(" ");我在函数中使用了这个数组,但是我得到了一个错误(TypeError: arrayali是未定义的,但它是定义的)在这个while语句中,它位于另一个for循环中:
while(((!(arrayal[i].indexOf('%') > -1)) || (arrayal[i] != "-") )){
temizarray[j] = temizarray[j] + arrayal[i];
i++;
}当我试图查看类型(Arrayali)时,它是字符串类型。我一个小时都解决不了这个问题。有什么想法吗?
这是我的全部代码:
function cakallik() {
var gelenveri = document.getElementById("cakalinput").value;
var arrayal = [];
arrayal = gelenveri.split(" ");
var uzunluk = arrayal.length;
var temizarray = [];
var j = 0;
var i = 0;
for (; i < uzunluk;) {
temizarray[j] = arrayal[i]; //ilk satır alındı
i++;
j++;
temizarray[j] = arrayal[i]; //ikincisatır alındı
i++;
j++;
temizarray[j] = arrayal[i]; //üçüncü satır alındı
i++;
j++;
temizarray[j] = arrayal[i]; //dördüncü alındı
i++;
j++;
temizarray[j] = arrayal[i]; // beşinci alındı
i++;
while (arrayal[i] != "-") {
temizarray[j] = temizarray[j] + arrayal[i];
i++;
}
i++;
j++;
temizarray[j] = arrayal[i];
i++;
console.log(typeof (arrayal[i]));
while (((!(arrayal[i].indexOf('%') > -1)) || (arrayal[i] != "-"))) {
temizarray[j] = temizarray[j] + arrayal[i];
i++;
}
i++;
j++;
temizarray[j] = arrayal[i];
i++;
j++;
temizarray[j] = arrayal[i];
i++;
i++;
j++;
temizarray[j] = arrayal[i];
i++;
j++;
temizarray[j] = arrayal[i];
i++;
i++;
j++;
temizarray[j] = arrayal[i];
i++;
j++;
temizarray[j] = arrayal[i];
i++;
i++;
j++;
temizarray[j] = arrayal[i];
i++;
j++;
temizarray[j] = arrayal[i];
i++;
i++;
j++;
temizarray[j] = arrayal[i];
i++;
j++;
temizarray[j] = arrayal[i];
i++;
i++;
j++;
temizarray[j] = arrayal[i];
i++;
j++;
temizarray[j] = arrayal[i];
i++;
i++;
j++;
temizarray[j] = arrayal[i];
i++;
j++;
temizarray[j] = arrayal[i];
}
console.log(temizarray);
}发布于 2017-03-18 09:17:00
arrayal[i] is undefined错误信息非常清楚。虽然arrayal被定义了,但是没有定义arrayal[i],因为您试图访问该数组中没有显示的元素。
简而言之,您的数组arrayal长度小于i,您应该在其中添加一个条件,以检查长度(如果arrayal也是)。
while(arrayal.length < i && ((!(arrayal[i].indexOf('%') > -1)) || (arrayal[i] != "-") )){
temizarray[j] = temizarray[j] + arrayal[i];
i++;
}https://stackoverflow.com/questions/42872485
复制相似问题