我无法弄清楚为什么我的减法金额不会起作用。它对于递增部分可以正常工作,但是如果第一个数组值大于第二个数组值,它似乎不会运行:
function sumAll(arr) {
console.log(arr[0], arr[1]);
var sum = 0;
if (arr[0] < arr[1]) {
for (var i = arr[0]; i <= arr[1]; i++) {
sum += i;
console.log(sum);
}
} else if (arr[0] > arr[1]) {
for (var j = arr[1]; j >= arr[0]; j--) {
sum += j;
console.log("sec", sum);
}
}
return sum;
}
sumAll([9, 3]);
答案 0 :(得分:2)
已在评论中解释,但这里是代码:
因为在for循环中你有条件j >= arr[0]
但是如果你有条件(arr[0] > arr[1])
则在else中,因为for循环永远不会被执行。
以下是工作代码:
function sumAll(arr) {
console.log(arr[0], arr[1]);
var sum = 0;
if (arr[0] < arr[1]) {
for (var i = arr[0]; i <= arr[1]; i++) {
sum += i;
console.log(sum);
}
} else if (arr[0] > arr[1]) {
for (var j = arr[0]; j >= arr[1]; j--) {
sum += j;
console.log("sec", sum);
}
}
return sum;
}
alert(sumAll([9, 3]););
答案 1 :(得分:1)
这应该有效:
function sumAll(arr) {
console.log(arr[0],arr[1]);
var sum=0;
if(arr[0] < arr[1]){
for(var i = arr[0]; i <= arr[1]; i++ ){
sum += i;
console.log(sum);
}
} else if(arr[0] > arr[1]) {
for(var j = arr[1]; j <= arr[0]; j++ ){
sum += j;
console.log("sec",sum);
}
}
return sum;
}
sumAll([9,3]);
当数字小于或等于数组中的最大数字时,我所做的就是使循环结束。