我创建了一个带有一些数字的数组。 我想找出有多少偶数,以及它有多少奇数 这个数组。我必须像这样打印出来:(这只是一个例子)
偶数:6
奇数:7
我需要制作一个循环来计算偶数和奇数的数量。
这是我到目前为止所拥有的
<script>
window.onload = run;
var tall = [5,10,15,20,25,30,35,40,45,50];
function run() {
tall = [5,10,15,20,25,30,35,40,45,50];
liste(tall);
}
function liste(arr) {
var sumOdd = 0; // Odd 1, 3, 5 etc..
var sumPar = 0; // Even 2, 4, 6 etc..
for(var i = 0; i < arr.length; i++) {
if(arr[i] % 2 === 0) {
sumPar += arr.length;
}
else {
sumOdd += arr.length;
} // Even numbers // Odd numbers
document.getElementById("print").innerHTML = "Partall: " + sumPar + "<br />" + "Oddetall: " + sumOdd;
}
}
}
</script>
这里有些错误,我不知道是什么。
答案 0 :(得分:4)
您可以使用Array#reduce
进行迭代并仅计算赔率。其余的只是取数组长度和赔率的差异。
var tall = [5, 10, 15, 20, 25, 30, 35, 40, 45, 50],
odd = tall.reduce(function (r, a) { return r + a % 2; }, 0),
even = tall.length - odd;
console.log('odd', odd);
console.log('even', even);
答案 1 :(得分:2)
您正在添加arr.length
这是数组长度。相反,你应该简单地增加数字
var tall = [5, 10, 15, 20, 25, 30, 35, 40, 45, 50];
liste(tall);
function liste(arr) {
var sumOdd = 0;
var sumPar = 0;
for (var i = 0; i < arr.length; i++) {
if (arr[i] % 2 === 0) {
sumPar++;
} else {
sumOdd++;
}
}
console.log("Odd : " + sumOdd);
console.log("Par : " + sumPar);
}
答案 2 :(得分:0)
您始终将数组的完整长度添加到变量
尝试使用此代替sumPar += arr.length;
:
sumPar++;