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
但是没有得到调用的两个函数的结果,我得到“未定义”。功能或通话中的问题是?我无法找到错误。
答案 0 :(得分:3)
问题在于,因为在每个函数中重新声明参数(anArray1
或anArray2
)并将其设置为空数组。
然后尝试遍历一个没有做任何事情的空数组,并返回未初始化的counter
值,这在逻辑上是undefined
。
0
,所以当你使用counter++
递增它时,它不会给你NaN
(非数字)。