数组中有多少奇数和偶数

时间:2016-10-28 09:30:46

标签: javascript

我创建了一个带有一些数字的数组。    我想找出有多少偶数,以及它有多少奇数    这个数组。我必须像这样打印出来:(这只是一个例子)

偶数: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>

这里有些错误,我不知道是什么。

3 个答案:

答案 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++;