【问题标题】:function returns two numbers, saving that to variable函数返回两个数字,将其保存到变量
【发布时间】:2017-12-02 12:37:41
【问题描述】:

这似乎是一个非常简单的问题,但我找不到任何人谈论它。在以下代码中

function add(x,y) {
  return (x+7, y+4);

}
let rew= add(1,1);

console.log(rew);

它说 rew 等于五。我知道我们需要保存两个值并且 rew 不是一个数组,但是我尝试将结果推送到一个数组中,但这也不起作用。有没有办法可以将这两个数字保存到一个变量中,以便能够操纵它们,然后将它们加在一起?

【问题讨论】:

  • 提示:return 3,2,1 - 返回 1 ... 因为 comma operator - 另外,return (3,2,1)return 3,2,1 相同
  • 谢谢,真的很有帮助

标签: javascript arrays function arguments


【解决方案1】:

JavaScript 没有这样的语法(看起来您正在尝试执行 C# 7 的元组)。由于逗号运算符,您将获得 5 的结果。对数组结果使用方括号。

function add(x,y) {
  return [x+7, y+4];

}
let rew= add(1,1);

console.log(rew);

【讨论】:

  • 当您尝试运行 sn-p 时是否出现服务不可用?
  • @Barmar 我在一些广告上看到了来自 nginx 的 502,可能某处有问题...
  • @Barmar 我在过去 15 分钟的所有 sn-ps 上都看到了这一点 :( 用于运行 sn-ps 的服务器有问题,但这个解决方案很有效,所以 +1。很好的答案。
  • @Barmar 我看到了,但它又开始为我工作了。
【解决方案2】:

您可以返回数组中的 2 个值,然后获取数组元素,用于您想要使用 2 个数字的任何内容:

function add(x,y) {
   return [x+7, y+4];

}
let rew= add(1,1);

console.log(rew);

代码在控制台上打印 Array [ 8, 5 ]

【讨论】:

    【解决方案3】:

    要返回多个值,您必须使用集合(数组或对象),但您可以使用destructuring assignment 将其直接分配给2个或更多变量:

    function add(x,y) {
      return [x+7, y+4];
    }
    
    const [a, b] = add(1,1);
    
    console.log('a: ', a);
    console.log('b: ', b);

    【讨论】:

      猜你喜欢
      • 2018-03-26
      • 1970-01-01
      • 2012-11-21
      • 1970-01-01
      • 2013-04-26
      • 1970-01-01
      • 2015-03-16
      • 2016-03-11
      • 2017-09-03
      相关资源
      最近更新 更多