【问题标题】:Returning multiple values in JS [duplicate]在JS中返回多个值[重复]
【发布时间】:2021-03-03 08:35:24
【问题描述】:

我只是在 JS 中调整了一些代码,最后写了下面的代码。

const adding=(a,b,c,d)=> {
  return(a+b, c+d)
}

let sum1, sum2 = adding(1,2,3,4)
console.log(sum1)
console.log(sum2)

输出是 不明确的 7

当我改变返回值的位置时,如下所示

const adding=(a,b,c,d)=> {
  return(c+d, a+b)
}

let sum1, sum2 = adding(1,2,3,4)
console.log(sum1)
console.log(sum2)

输出是 Undefined 3

我的问题是为什么?

【问题讨论】:

  • 让话题更清晰了,谢谢。

标签: javascript function return return-value multiple-value


【解决方案1】:

您的方法仅返回最后一个表达式,因为 comma operator 和括号不是有效的数据类型,只是 grouping operator ()

相反,您可以将数组作为数据结构,进一步destructuring

const adding = (a, b, c, d) => [c + d, a + b];

let [sum1, sum2] = adding(1, 2, 3, 4);
console.log(sum1)
console.log(sum2)

【讨论】:

  • 谢谢,有道理。我以为逗号是分隔符,但忘了它也是运算符。
【解决方案2】:

在 javascript 中,您可以在以逗号分隔的单行上声明多个变量。因此,您声明了 sum1sum2。但是,您仅将值分配给 sum2

你做的和你做的一样

let sum1;
let sum2 = add(1, 2, 3, 4);

【讨论】:

  • 但是为什么将第二个返回值分配给sum2,而不是第一个返回值。
  • 现在我知道为什么 sum1 未定义,谢谢。
猜你喜欢
  • 1970-01-01
  • 2016-01-18
  • 2015-06-26
  • 2015-03-27
  • 2014-09-12
  • 1970-01-01
  • 2020-03-20
  • 2011-04-19
相关资源
最近更新 更多