如果其中一个参数为负,我希望我的代码返回错误怎么做到的?
const sumAll = function(num1,num2) {
let newArr = [num1,num2];
let sortedArr = newArr.sort(function(a,b) {
return a - b;
})
let lastArr = []
for (let i = sortedArr[0]; i <= sortedArr[1]; ++i ) {
lastArr.push(i)
}
let reducedArr = lastArr.reduce(function(previousValue,currentValue) {
return previousValue + currentValue;
})
return reducedArr;
};
console.log(sumAll(1,-4));
试试这样
const sumAll = function(num1,num2) {
if (num1 < 0 || num2 < 0) {
throw "Num1 and num2 must not be negative"
}
let newArr = [num1,num2];
let sortedArr = newArr.sort(function(a,b) {
return a - b;
})
let lastArr = []
for (let i = sortedArr[0]; i <= sortedArr[1]; ++i ) {
lastArr.push(i)
}
let reducedArr = lastArr.reduce(function(previousValue,currentValue) {
return previousValue + currentValue;
})
return reducedArr;
};
console.log(sumAll(1,-4));
如果您想返回错误消息而不是抛出错误,请将第3行中的单词throw
替换为单词return
。
如果问题与负参数检查有关,我认为可以使用Math.sign()
函数来检查值的负性/正性。
Math.sign(-4)
返回-1
Math.sign(4)
返回1
在这种情况下,它将代表true
/false
const sumAll = function(num1,num2) {
if (Math.sign(num1) || Math.sign(num2)) {
return "Parameters must be positive integer."
}
let newArr = [num1,num2];
let sortedArr = newArr.sort(function(a,b) {
return a - b;
});
let lastArr = [];
for (let i = sortedArr[0]; i <= sortedArr[1]; ++i ) {
lastArr.push(i);
}
let reducedArr = lastArr.reduce(function(previousValue,currentValue) {
return previousValue + currentValue;
});
return reducedArr;
};
console.log(sumAll(1,-4));