【发布时间】:2020-04-19 22:03:18
【问题描述】:
我想用三元运算符替换 if 语句。我的代码中的情况是我想使用一个 if 语句而不是 if-else。但似乎三元运算符采用强制性的 else 语句。
产生错误的预期代码是:
for(let i = 0; i<fibArr.length; i++) {
!fibArr[i] % 2 === 0 ? result += fibArr[i]; //The problem area
}
相反,我必须编写运行没有任何问题的代码:
for(let i = 0; i<fibArr.length; i++) {
if(fibArr[i] % 2 !== 0) {
result += fibArr[i]
}
}
完整代码:
function sumFibs(num) {
let a = 0, b = 1, fib = 0;
let i = 0;
let fibArr = []
let result = 0;
while(fib <= num){
fibArr.push(fib)
a = b;
b = fib;
fib = a+b;
}
for(let i = 0; i<fibArr.length; i++) {
if(fibArr[i] % 2 !== 0) {
result += fibArr[i]
}
}
console.log(result)
return result;
}
【问题讨论】:
-
你可以添加
0else caseresult += (fibArr[i] % 2 !== 0) ? fibArr[i] : 0; -
一开始为什么要替换它?这似乎对你没有任何好处
标签: javascript loops if-statement ternary