为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

陪伴而非守候 2023-09-28 09:59:22
我一直在尝试找到一种方法来计算数组中偶数或奇数的总和。我弄清楚了如何在控制台中实际仅输出偶数或奇数,但我不确定如何计算偶数或奇数的总和。我找到的唯一解决方案是计算整个数组我的代码很可能没有遵循最佳的代码实践,所以请对我宽容一点,但请随意指出更好的方法来实现结果。我洗耳恭听。下面的代码给出了数组中当前的偶数并将它们输出到浏览器控制台这就是我目前所处的位置    <!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>
查看完整描述

3 回答

?
守着星空守着你

TA贡献1799条经验 获得超8个赞

您可以使用 非常简单地完成此操作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);


查看完整回答
反对 回复 2023-09-28
?
千巷猫影

TA贡献1829条经验 获得超7个赞

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

let number = 0, rest = 0, result = 0;


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

  number = list[counter];

  rest = number%2;

  if(rest == 0) {

    result += number; //here

  }

}


console.log(result); //printing result


查看完整回答
反对 回复 2023-09-28
?
慕姐8265434

TA贡献1813条经验 获得超2个赞

从技术上讲,您可以循环遍历数组,如果均匀,则将其添加到变量中,否则将其添加到不同的变量中。


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

evensum = 0;

oddsum = 0;


list.forEach(function(e) {

  if (e % 2 == 0) {

    evensum += e;

  } else{

    oddsum += e;

  }

});


console.log(evensum, oddsum)


查看完整回答
反对 回复 2023-09-28
  • 3 回答
  • 0 关注
  • 112 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信