我的函数返回'undefined'

时间:2015-03-26 22:44:35

标签: javascript

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

我在屏幕上打印theArray但是没有得到调用的两个函数的结果,我得到“未定义”。功能或通话中的问题是?我无法找到错误。

1 个答案:

答案 0 :(得分:3)

问题在于,因为在每个函数中重新声明参数(anArray1anArray2)并将其设置为空数组。

然后尝试遍历一个没有做任何事情的空数组,并返回未初始化的counter值,这在逻辑上是undefined

编辑:正如@blex正确指出的那样,你还需要确保将计数器变量初始化为0,所以当你使用counter++递增它时,它不会给你NaN(非数字)。