TypeError: arrayal[i] is undefined but it is defined
TypeError: arrayal[i] is undefined but it is defined
我有一个这样创建的数组:
var gelenveri = document.getElementById("cakalinput").value;
var arrayal = [];
arrayal = gelenveri.split(" ");
我将这个数组用于我的函数,但我在另一个 for 循环内的 while 语句中收到错误(TypeError:arrayal[i] 未定义但已定义):
while(((!(arrayal[i].indexOf('%') > -1)) || (arrayal[i] != "-") )){
temizarray[j] = temizarray[j] + arrayal[i];
i++;
}
当我尝试查看 typeof(arrayal[i]) 时,它是字符串类型。我一个小时都解决不了这个问题。有什么想法吗?
这是我的全部代码:
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);
}
arrayal[i] is undefined
错误信息很清楚。尽管 arrayal
已定义,但 arrayal[i]
未定义,因为您正在尝试访问该数组中未出现的元素。
简而言之,你的数组 arrayal
长度小于 i
,你应该在 while 中添加一个条件来检查长度 if arrayal
。
while(arrayal.length < i && ((!(arrayal[i].indexOf('%') > -1)) || (arrayal[i] != "-") )){
temizarray[j] = temizarray[j] + arrayal[i];
i++;
}
我有一个这样创建的数组:
var gelenveri = document.getElementById("cakalinput").value;
var arrayal = [];
arrayal = gelenveri.split(" ");
我将这个数组用于我的函数,但我在另一个 for 循环内的 while 语句中收到错误(TypeError:arrayal[i] 未定义但已定义):
while(((!(arrayal[i].indexOf('%') > -1)) || (arrayal[i] != "-") )){
temizarray[j] = temizarray[j] + arrayal[i];
i++;
}
当我尝试查看 typeof(arrayal[i]) 时,它是字符串类型。我一个小时都解决不了这个问题。有什么想法吗?
这是我的全部代码:
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);
}
arrayal[i] is undefined
错误信息很清楚。尽管 arrayal
已定义,但 arrayal[i]
未定义,因为您正在尝试访问该数组中未出现的元素。
简而言之,你的数组 arrayal
长度小于 i
,你应该在 while 中添加一个条件来检查长度 if arrayal
。
while(arrayal.length < i && ((!(arrayal[i].indexOf('%') > -1)) || (arrayal[i] != "-") )){
temizarray[j] = temizarray[j] + arrayal[i];
i++;
}