这个初学者JavaScript数学问题的代码有什么问题?



我正试图为以下问题编写解决方案,但遇到了一些困难:

如果我们列出所有10以下的自然数,它们是3或5的倍数,我们得到3、5、6和9。这些倍数之和是23。

完成解决方案,使其返回低于传入数字的3或5的所有倍数的总和。

注意:如果数字是3和5的倍数,则只计算一次。

这是我的代码:

function solution(number){
var sum = 0,
for (i = 0, i < number, i++) {
if ((i % 3 === 0) && (i % 5 === 0)) {
sum += i }
else if  ((i % 3 === 0) || (i % 5 === 0)) {
sum += i }
}
return sum;
}

提前感谢!

您只需要一个测试:如果满足i % 3 === 0 || i % 5 === 0,则将i添加到sum

确保不要隐式创建全局变量;i = 0将在严格模式下抛出错误。第一次使用变量时,请始终声明它们。

function solution(number) {
var sum = 0;
for (let i = 0; i < number; i++) {
if (i % 3 === 0 || i % 5 === 0) {
sum += i;
}
}
return sum;
}
console.log(solution(10));

您还需要在for循环声明中放入分号,而不是逗号。

最新更新