【发布时间】:2021-10-28 04:56:25
【问题描述】:
我需要制作一个斐波那契数列,我在下面找到了这段代码。当我试图理解我看到的所有代码“(i
堆栈溢出代码:
function fib(n) {
return new Array(n).fill(1).reduce((arr, _, i) => {
arr.push((i <= 1) ? i : arr[i - 2] + arr[i - 1])
return arr
}, []);
}
console.log(fib(10))
我的代码带有(如果 else 则扩展):
function fib(n) {
return new Array(n).fill(1).reduce((arr, _, i) => {
arr.push(
if (i <= 1) {
i
} else {
arr[i - 2] + arr[i - 1]
})
return arr
}, []);
}
console.log(fib(10))
为什么我的代码和上面的代码不等价?
【问题讨论】:
-
developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…。您不能只在
.push()中删除if -
“我认为这是一个简单的 if else 快捷条件”虽然这有点接近正确,但任何旧的
if/else都不是一个drop-代替最初使用三元运算符?编写的内容 -
您的代码不起作用,因为它在语法上不正确 — 就这么简单。
标签: javascript if-statement conditional-operator