我是Javascript的新手,我正在学习它的课程。我得到了一个任务来创建一个函数,该函数旨在将数组作为协议(没有特定的数组或他的元素给定),以计算奇数元素的数量并返回奇数元素的数量。
所以我做了这样的事情,但任务似乎没有完成。这里出了什么问题?
var count = 0;
for(var i = 0; i < arr.length; ++i){
if(arr[i] % 2 !== 0)
count++;
return count++;
}
}
您在代码的早期返回
var count = 0;
for(var i = 0; i < arr.length; ++i){
if(arr[i] % 2 !== 0)
count++;
return count++; // Here you return when you find the first odd and exit the function so other odds are not counted for
}
}
你需要在循环完成后返回计数
var count = 0;
for(var i = 0; i < arr.length; ++i){
if(arr[i] % 2 !== 0)
count++;
}
return count;
}
另一种计数奇数元素并获得其出现总数的方法是使用Array。原型#filter和长度如下:
function count_odd_nums(arr){
var count = arr.filter(item => item % 2 !== 0).length
return count;
}
console.log(count_odd_nums([1,2,3,4,5,6,7,8,9,10]));
它的作用如下。它使用array# filter方法根据谓词函数对数组中的元素进行过滤。在本例中,谓词函数检查一个数字是否为奇数。然后,它返回一个新数组,其中包含传递给谓词函数的元素(在本例中都是奇数)。之后,我们可以简单地使用该数组的.length
方法来找出我们找到了多少个奇数
看一下Array.prototype#filter
的MDNhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter