将两个值传递给函数而不调用另一个函数两次

时间:2017-07-11 12:56:12

标签: javascript

我有一个函数rangeInclusive,它接受​​两个参数:

function rangeInclusive(start, end) {
   ...
}

为了计算startend值,我有另一个名为getValidYearRange的函数:

getValidYearRange() {
  let validRange = [];
  if (myCondition === 'foo') {
    validRange = [this.calculateValidYear1(), this.calculateValidYear2()];
  } else {
    validRange = [1900, 2017];
   }

   return validRange;
}

正如您所看到的,我有一个条件集,用于确定范围是否为我的硬编码值,或者调用另外两个函数来获取更多信息。

但是我遇到了以下问题,rangeInclusive似乎将参数作为数组获取并且未定义,例如:

start = [1900, 2017], end = undefined 而不是: start = 1900, end = 2017

我完全无法更改rangeInclusive ,因为它在整个项目中使用过。

如果没有两次调用函数,如何为startend返回两个值?

2 个答案:

答案 0 :(得分:1)

如果您使用的是es6语法,可以通过

来实现

const [start, end] = getValidYearRange()

现在您有两个变量startend,您可以使用这两个变量调用rangeInclusive

答案 1 :(得分:0)

试试这个

[start,end] = getValidYearRange();

并参考此链接:https://stackoverflow.com/a/2917483/4798278