【问题标题】:How to add n number of values using Javascript [duplicate]如何使用Javascript添加n个值[重复]
【发布时间】:2020-06-21 07:33:22
【问题描述】:

我在这里有一个疑问,我需要传递 n 个值作为参数并使用 Javascript 计算它的总和。我在下面解释一些示例代码。

function add(a,b,c) {
  return a+b+c;
}



var data =add(5,6,7);

console.log(data)

在这里,我只向函数传递了 3 个参数,但我需要向函数传递 n 个参数,比如在函数内部知道有多少值作为参数传递,最后我需要总和并返回它。

【问题讨论】:

  • 现代 JS 允许您使用 rest 语法显式定义可变参数。所以它看起来像:function add(...nums) { /*your code*/ } nums 将是一个数组,其中包含传递的任何内容。 developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
  • 我建议您创建一个类并将其称为对象,因此对于每个参数,您将创建该类的一个新实例,或者,尝试将参数作为数组/向量传递! !
  • @slappy:是的,你是对的。
  • add = (...arg) => [...arg].reduce((a, b) => a + b, 0)

标签: javascript add


【解决方案1】:

如果你想以函数式的方式编写它,你可以将其归约以求和

function add(...numbers) {
  return numbers.reduce((acc,no) => return acc + no),0);
}

或者通过使用 arguments 关键字知道它仅在函数是普通函数而不是箭头函数时才可用。 这是一个参考https://stackoverflow.com/a/38567145/1888435

另外,参数不是一个数组,它是一个类似数组的数组,如果你检查 typeof arguments 它会给你对象。

【讨论】:

    【解决方案2】:

    正如@slappy 所说,您可以将参数作为数组获取

    function add(...numbers){
      // Values reach as array
      console.log(numbers)
      // Here you should use array inner functions
      return numbers.reduce((sum,value) => sum+value, 0)
    }
    
    let data = add(5,6,7);
    console.log(data)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-11
      • 2012-08-27
      • 2016-11-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多