下面是我写的,总感觉写的很渣,有没有好点的写法
let 代码块4=()=>{
代码块4
}
let 代码块3=()=>{
代码块3
代码块4()
}
代码块1
if(条件1){
代码块2
if(条件2){
代码块3()
}else{
代码块4()
}
}else{
代码块3()
}
下面是我写的,总感觉写的很渣,有没有好点的写法
let 代码块4=()=>{
代码块4
}
let 代码块3=()=>{
代码块3
代码块4()
}
代码块1
if(条件1){
代码块2
if(条件2){
代码块3()
}else{
代码块4()
}
}else{
代码块3()
}
先解嵌套,基本上就好读了,多层嵌套代码越到后面越难读懂
let 代码块4=()=>{
代码块4
}
let 代码块3=()=>{
代码块3
代码块4()
}
代码块1
if(!条件1){
代码块3()
return;
}
代码块2
if(条件2){
代码块3()
return;
}
代码块4()
一个代码块一个函数,不需要嵌套
代码块1()
条件1 && 代码块2()
// 条件1 && 条件2 && 代码块3()
(!条件1 || 条件2) && 代码块3()
代码块4()
const f1 = () => {
console.log('f1 被执行')
return 0 // 0 可以不用返回
}
const f2 = () => {
console.log('f2 被执行')
return 1 // 1 代表nextJump
}
const f3 = () => {
console.log('f3 被执行')
return 0
}
const f4 = () => {
console.log('f4 被执行')
return 1
}
const f5 = () => {
console.log('f5 被执行')
return 0
}
const fun = [f1,f2,f3,f4,f5]
fun.reduce((nextJump, fn, index, arr) => {
nextJump = fn()
// p 是false 删除下一个函数
nextJump && arr.splice(index+1,nextJump)
}, 0)
// 如果说 你要讲每个函数的执行数据传递下去 就修改nextJump就行 nextJump = fn(nextJump)
// 或者bind 到上一个对象 fn.bind(nextJump)
10 回答11.7k 阅读
2 回答3.2k 阅读✓ 已解决
2 回答4.3k 阅读✓ 已解决
4 回答4.2k 阅读
3 回答1.9k 阅读✓ 已解决
2 回答1.7k 阅读✓ 已解决
4 回答2.5k 阅读✓ 已解决
某几次运行结果
另一种写法,直接从函数里返回下面要进行的步骤序号,循环(依次)执行,将结果插入到一个集合中,每次执行的时候,检查序号是否在此集合,如果在,执行,否则不执行。
不过我觉得最直接的写法还是直接在函数中调用,每次只需要调用一次开始那个
fn1()
即可。