繁体   English   中英

如何通过reduce方法js对数组元素求和

[英]How to sum the array elements by reduce method js

为什么我的鳕鱼不起作用我的意思是我什至可以用 reduce 方法求和?

function sum() {
    let numbers = [] ;
    let result ;
    while(true) {
        let input = prompt("Enter a number or press 'S' to submit") ;
        if(input === "s" || input === null) {
            break;
        }
        numbers.push(Number(numbers)) ;
    }
    **let submaition = numbers.reduce(myfun); 
    function myfun(a , b) {
        result = parseInt(a) + parseInt (b) ;
        return result ;
    }**
}

是的

 const euros = [29.76, 41.85, 46.5]; const sum = euros.reduce((total, amount) => total + amount); console.log(sum) // 118.11

您的减少 function 是好的问题是您没有将正确的值推送到 Numbers 数组。 代替:

numbers.push(Number(numbers)) ;

用这个:

numbers.push(Number(input)) ;

我希望这能够帮到你。

您应该将初始值传递给减少 function 也有错误numbers.push(Number(numbers)); 它应该是numbers.push(Number(input)); 这是一个工作片段:

 function sum() { let numbers = []; let result; while (true) { let input = prompt("Enter a number or press 'S' to submit"); if (input === "s" || input === null) { break; } else { numbers.push(Number(input)); } } let submaition = numbers.reduce(myfun, 0); function myfun(a, b) { return parseInt(a)+ parseInt(b); } console.log(submaition); } sum();

执行过程中出现的问题很少,

  • 它应该是numbers.push(Number(input))而不是numbers.push(Number(numbers))
  • 如果输入一个字符串,那么结果将是NaN

我已经在下面的代码中解决了这些问题。

function sum() {
    let numbers = [] ;
    let result ;
    while(true) {
        let input = prompt("Enter a number or press 'S' to submit") ;
        if(input === "s" || input === null) {
            break;
        }
        if(isNaN(Number(input))) input = 0;
        numbers.push(Number(input));
    }
    console.log(numbers);
    let submaition = numbers.reduce(myfun, 0); 
    function myfun(a , b) {
        result = a + b ;
        return result;
    }

    return submaition
}

console.log(sum())


希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM