猿问

有没有一种方法可以计算数组中偶数的总和?

我一直在尝试找到一种方法来计算数组中偶数或奇数的总和。我弄清楚了如何在控制台中实际仅输出偶数或奇数,但我不确定如何计算偶数或奇数的总和。我找到的唯一解决方案是计算整个数组


我的代码很可能没有遵循最佳的代码实践,所以请对我宽容一点,但请随意指出更好的方法来实现结果。我洗耳恭听。


下面的代码给出了数组中当前的偶数并将它们输出到浏览器控制台


这就是我目前所处的位置


    <!DOCTYPE html>

    

    <html>

    <head>

      <meta charset="UTF-8">

      <title>For - loop </title>

      <script>

     window.onload = startFunction;


    function startFunction()

    {

        document.getElementById("buttonOne").onclick = buttonFunction;

    }


    function buttonFunction ()

    {

        var list=[22,45,63,223,12,56,89];

        var number = 0;

        var rest = 0;

        var counter;

        

        for(counter=0;counter<20;counter+=1)

        {

        

            number = list[counter];

            

            rest = number%2;

            

            if(rest == 0)  //type (rest==0) to find even numbers in the array

            {

                console.log(number);

            }

        }

    }

  </script>

</head>

<body>

    <button id="buttonOne">Enter</button>

</body>

</html>


陪伴而非守候
浏览 113回答 3
3回答

守着星空守着你

您可以使用 非常简单地完成此操作Array#reduce。const list=[22,45,63,223,12,56,89];let evenSum = list.reduce((acc,curr)=>acc + (curr % 2 == 0 ? curr : 0), 0);console.log('Even sum:', evenSum);let oddSum = list.reduce((acc,curr)=>acc + (curr % 2 == 1 ? curr : 0), 0);console.log('Odd sum:', oddSum);如果性能特别重要,您可以通过一次reduce操作计算两个总和。const list=[22,45,63,223,12,56,89];let [evenSum, oddSum] = list.reduce((acc,curr)=>(acc[curr % 2] += curr, acc), [0, 0]);console.log('Even sum:', evenSum);console.log('Odd sum:', oddSum);

千巷猫影

let list = [22,45,63,223,12,56,89];let number = 0, rest = 0, result = 0;for(let counter = 0; counter < 20; counter += 1) {&nbsp; number = list[counter];&nbsp; rest = number%2;&nbsp; if(rest == 0) {&nbsp; &nbsp; result += number; //here&nbsp; }}console.log(result); //printing result

慕姐8265434

从技术上讲,您可以循环遍历数组,如果均匀,则将其添加到变量中,否则将其添加到不同的变量中。list = [22, 45, 63, 223, 12, 56, 89]evensum = 0;oddsum = 0;list.forEach(function(e) {&nbsp; if (e % 2 == 0) {&nbsp; &nbsp; evensum += e;&nbsp; } else{&nbsp; &nbsp; oddsum += e;&nbsp; }});console.log(evensum, oddsum)
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答