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)
智慧大石
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})
胡说叔叔
TA贡献1804条经验 获得超8个赞
let loop = (fun) => {
obj.forEach((v, k) => {
if (fun) {} else { }
})
}
loop(fun)
添加回答
举报
0/150
提交
取消