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));