Javascript 我的函数返回';未定义'; 函数countoddNumber(anArray1){ var计数器; var anArray1=[]; 对于(变量i=0;i
我得到了屏幕上打印的Javascript 我的函数返回';未定义'; 函数countoddNumber(anArray1){ var计数器; var anArray1=[]; 对于(变量i=0;i,javascript,Javascript,我得到了屏幕上打印的数组,但没有得到调用的两个函数的结果,我得到的是“未定义”。问题是在函数中还是在它们的调用中?我无法找到错误。问题在于,在每个函数中,您重新声明了参数(要么anArray1要么anArray2),并将其设置为空数组 然后尝试循环一个空数组,该数组不做任何操作,并返回未初始化的计数器值,该值在逻辑上是未定义的 编辑:正如@blex正确指出的,您还需要确保将计数器变量初始化为0,因此当您使用counter++增加它时,它不会给您NaN(不是一个数字)。问题在于每个函数中都重新声明
数组
,但没有得到调用的两个函数的结果,我得到的是“未定义”。问题是在函数中还是在它们的调用中?我无法找到错误。问题在于,在每个函数中,您重新声明了参数(要么anArray1
要么anArray2
),并将其设置为空数组
然后尝试循环一个空数组,该数组不做任何操作,并返回未初始化的计数器值
,该值在逻辑上是未定义的
编辑:正如@blex正确指出的,您还需要确保将计数器变量初始化为
0
,因此当您使用counter++
增加它时,它不会给您NaN
(不是一个数字)。问题在于每个函数中都重新声明了参数(要么anArray1
要么anArray2
)并将其设置为空数组
然后尝试循环一个空数组,该数组不做任何操作,并返回未初始化的计数器值
,该值在逻辑上是未定义的
编辑:正如@blex正确指出的,您还需要确保将计数器变量初始化为
0
,因此当您使用counter++
增加它时,它不会给您NaN
(不是一个数字)。问题在于每个函数中都重新声明了参数(要么anArray1
要么anArray2
)并将其设置为空数组
然后尝试循环一个空数组,该数组不做任何操作,并返回未初始化的计数器值
,该值在逻辑上是未定义的
编辑:正如@blex正确指出的,您还需要确保将计数器变量初始化为
0
,因此当您使用counter++
增加它时,它不会给您NaN
(不是一个数字)。问题在于每个函数中都重新声明了参数(要么anArray1
要么anArray2
)并将其设置为空数组
然后尝试循环一个空数组,该数组不做任何操作,并返回未初始化的计数器值
,该值在逻辑上是未定义的
编辑:正如@blex正确指出的那样,您还需要确保将计数器变量初始化为
0
,因此当您使用counter++
增加它时,它不会给您NaN
(不是数字).在函数中,覆盖传递到函数中的数组。在函数中,覆盖传递到函数中的数组。在函数中,覆盖传递到函数中的数组。在函数中,覆盖传递到函数中的数组。+1.这是一个开始,但他也需要将计数器初始化为0,否则他将得到NaN
:+1。这是一个开始,但他也需要将计数器初始化为0,否则他将得到NaN
:+1。这是一个开始,但他也需要将计数器初始化为0,或者他将得到NaN
:+1。这是一个开始,但他还需要将计数器初始化为0,否则他将得到NaN
:
function countOddNumbers(anArray1) {
var counter;
var anArray1 = [];
for (var i = 0; i < anArray1.length; i++) {
if (anArray1[i] % 2 == 0) {
counter++;
}
}
return counter;
}
function countEvenNumbers(anArray2) {
var anArray2 = [];
var counter2;
for (var i = 0; i < anArray2.length; i++) {
if (anArray2[i] % 2 != 0) {
counter2++;
}
}
return counter2;
}
var theArray = new Array(5);
for (var i = 0; i < theArray.length; i++) {
theArray[i] = window.prompt("please enter a number", " ");
}
document.write(theArray);
document.write(countOddNumbers(theArray));
document.write(countEvenNumbers(theArray));