无法读取属性';0';数组Javascript中未定义的
好吧,这真的让我发疯了。我不明白为什么我一直得到未捕获的类型错误:无法读取未定义的属性“0” 有人能指出是什么原因导致了这个数组行上的无法读取属性';0';数组Javascript中未定义的,javascript,Javascript,好吧,这真的让我发疯了。我不明白为什么我一直得到未捕获的类型错误:无法读取未定义的属性“0” 有人能指出是什么原因导致了这个数组行上的uncaught错误num=myArray[0] var val= this.value; myArray = checkinput(val); num = myArray[0]; data = myArray[1]; if (num == 0 ) { .... } else { .... } /*FUNCTIONS*/ func
uncaught错误num=myArray[0]代码>
var val= this.value;
myArray = checkinput(val);
num = myArray[0];
data = myArray[1];
if (num == 0 ) {
....
} else {
....
}
/*FUNCTIONS*/
function checkinput(val) {
var val;
//some regex here
if (regexA.test(val)) {
var fname = val.match(regexA)[0];
var arr = [0,fname]; // 0 as identifier
return arr;
}
else if (regexB.test(val)) {
var lname = val.match(regexB)[0];
var arr= [1,lname]; // 1 as identifier
return arr;
}
}
这是因为无论是regexA.test(val)
还是regexB.test(val)
都不会返回true
。尝试添加带有错误的else
子句:
...
} else {
console.log("error, test(val) invalid: " + test(val));
}
我不能再帮你了,因为我不知道你的正则表达式变量的内容。但是如果我是你,我会开始看那里。你的函数ckeckinput
并不总是返回值。您的输入不能与任何一个测试匹配。当然,checkinput
函数中的两个条件都为false,因此它不会返回任何内容。如何正确地继续调试?请使用浏览器的开发人员控制台。设置断点并运行它。