为了账号安全,请及时绑定邮箱和手机立即绑定

JS怎样精简这样的循环

JS怎样精简这样的循环

慕森卡 2019-03-20 18:15:52
JavaScript如下代码,循环里除了判断的条件不一样,其它都是一样的。判断的条件里有可能会包含i,也有可能不含i。有没有办法精简它们??// obj 这是一个jsonloop1(){    for(let i=0;i<obj.length;i++){        if(i%2!==0){            doSomethingA()        } else {            doSomethingB()        }    }}loop2(){    for(let i=0;i<obj.length;i++){        if(i%2!==0 && i!==0){            doSomethingA()        } else {            doSomethingB()        }    }}loop3()。。。loop4()。。。
查看完整描述

4 回答

?
青春有我

TA贡献1784条经验 获得超8个赞

// obj = xxxx


function loop (predicate) {

    for (let i = 0; i < obj.length; i++) {

        if (predicate(i)) {

            doSomethingA()

        } else {

            doSomethingB()

        }

    }

}


loop(i => i % 2 !== 0)

loop(i => i % 2 !== 0 && i !== 0)


查看完整回答
反对 回复 2019-04-04
?
智慧大石

TA贡献1946条经验 获得超3个赞

function loop (obj, fun) {

  for (let i = 0; i < obj.length; i++) {

    if (fun(i, obj)) {

      doSomethingA()

    } else {

      doSomethingB()

    }

  }

}


loop1 等价于 loop(obj, function(i) {return i % 2 !== 0})

loop2 等价于 loop(obj, function(i) {return i % 2 !== 0 && i !== 0})


查看完整回答
反对 回复 2019-04-04
?
胡说叔叔

TA贡献1804条经验 获得超8个赞

let loop = (fun) => {
obj.forEach((v, k) => {

if (fun) {} else {
}

})
}
loop(fun)


查看完整回答
反对 回复 2019-04-04
  • 4 回答
  • 0 关注
  • 405 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信