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)
dorangeInclusive(…returnVal)
您不能这样做:rangeInclusive(validRange[0],validRange[1]){/*做点什么*/}
或rangeInclusive(…validRange){/*做点什么*/}
我看不到任何一行可以调用rangeInclusive,在那里您可以更改某些内容。请显示更多的代码。