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

Javascript 将两个值传递给一个函数而不调用另一个函数两次,javascript,Javascript,我有一个函数,rangeInclusive,它接受两个参数: function rangeInclusive(start, end) { ... } 为了计算start和end值,我使用了另一个名为getValidyArrange的函数: getValidYearRange() { let validRange = []; if (myCondition === 'foo') { validRange = [this.calculateValidYear1(), this

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

function rangeInclusive(start, end) {
   ...
}
为了计算
start
end
值,我使用了另一个名为
getValidyArrange
的函数:

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

   return validRange;
}
如您所见,我有一个条件集,用于确定范围是我的硬编码值,还是调用另外两个函数以获取更多信息

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

start=[1900,2017],end=未定义
而不是:
start=1900,end=2017

我根本无法更改
rangeInclusive
,因为它在整个项目中都使用


如何在不调用函数两次的情况下为
start
end
返回两个值?

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

const[start,end]=getValidyArrange()

现在您有了两个变量
start
end
,您可以用它们调用
rangeInclusive

[start,end] = getValidYearRange();

请参阅此链接:

您不能返回多个值。您需要更改调用
rangeInclusive
,例如
rangeInclusive(returnVal)
do
rangeInclusive(…returnVal)
您不能这样做:
rangeInclusive(validRange[0],validRange[1]){/*做点什么*/}
rangeInclusive(…validRange){/*做点什么*/}
我看不到任何一行可以调用rangeInclusive,在那里您可以更改某些内容。请显示更多的代码。