这是我的代码:
function isEven(num) {;
if (num % 2 === 0) {
return true;}
else {
return false;}
}
function convertToIntegers(lst) {
lst.split(' ');
var len = lst.length;
var count = 0;
while (count < len) {
lst[count] = parseInt(lst[count]);
count++}
}
function iqTest(numbers){
var int_list = convertToIntegers(numbers);
var e_list = [];
var o_list = [];
var count = 0;
var len_int = int_list.length;
while (count < len_int) {
if (isEven(int_list[count]) === true) {
e_list.push(count);}
else if (isEven(count) === false) {
o_list.push(count);}
count++}
if (e_list.length < 2 && e_list.length > 0 && o_list.length > 2) {
return e_list[0];}
else if (o_list.length < 2 && o_list.length > 0 && e_list.length > 2) {
return o_list[0];}
}
每次我运行它都会出现这个错误,上面写着&#34; TypeError:无法读取属性&#39;长度&#39;未定义的iqTest&#34;。任何人都可以向我解释如何解决这个错误。我不明白为什么我的代码中的任何对象都是未定义的。我做的每个var声明都是完整的。我认为只有在我写了类似于&#39; var a&#39;没有定义它。
答案 0 :(得分:0)
这个很容易!
在这些情况下,您希望追溯值。
您在.length
iqTest()
使用var len_int = int_list.length;
int_list
的最后一次分配位于第var int_list = convertToIntegers(numbers);
行
convertToIntegers(numbers)
处的噱头显示没有return
声明。
因此得出结论:
convert2Integers()
int_list
中没有任何内容返回int_list.length;
然后使用undefined
lst
您似乎希望从convert2Integers()
function convertToIntegers(lst) {
lst = lst.split(' '); // NOTICE CHANGE, + create a different list!
var len = lst.length;
var count = 0;
while (count < len) {
lst[count] = parseInt(lst[count]);
count++
}
return lst; //THIS LINE was Missing!
}
{{1}}
答案 1 :(得分:0)
Tomer W和Patrick Evans是对的。改变你的助手功能
function convertToIntegers(lst) {
lst = lst.split(' ');
var len = lst.length;
var count = 0;
while (count < len) {
lst[count] = parseInt(lst[count]);
count++;
}
return lst;
}
这样你就可以存储拆分结果,然后在完成后返回数组。
说不需要这个功能。查看内置数组函数map
答案 2 :(得分:0)
要扩展@Patrick Evans注释,您需要保存拆分的结果,然后将其用于while循环。正如旁注所示,您知道循环的迭代次数,因此您可以使用for循环。
2016-11-07 23:16:08.738 DEBUG 1029 --- [nio-8080-exec-2] org.hibernate.SQL : select employee0_.id as id1_1_, employee0_.company_id as company_4_1_, employee0_.name as name2_1_, employee0_.surname as surname3_1_ from employee employee0_ left outer join company company1_ on employee0_.company_id=company1_.id where company1_.id=?
2016-11-07 23:16:08.744 DEBUG 1029 --- [nio-8080-exec-2] org.hibernate.SQL : select company0_.id as id1_0_0_, company0_.name as name2_0_0_ from company company0_ where company0_.id=?