循环中具有不同进程的循环的函数
Function for loops with a different process within the loop
我有一个非常相似的过程,发生在很多地方,只有一个小的变化。我想知道使代码更整洁的最佳方法是什么。目前,该过程是:
var drawx = 0;
var drawy = 0;
while(drawy < 22){
while(drawx < 10){
if(nextBlock[drawx][drawy] != false){
base[drawx][drawy] = nextBlock[drawx][drawy];
}
drawx++;
}
drawx = 0;
drawy++;
}
在 drawx <10 中,我通常有不同的东西要运行,我不确定如何创建一个中间有一个可变进程的函数。有没有办法做到这一点,或者我应该创建一个函数来执行此过程并根据运行函数时调用的参数执行某个 if 语句?
编辑:我想我可能还没有解决我最初的问题。我希望能够让循环中的 if 语句等进程成为可变进程,而其余部分
JavaScript 具有一流的函数,因此您可以执行以下操作:
function drawLoop(action) {
var drawx = 0;
var drawy = 0;
while(drawy < 22){
while(drawx < 10){
action(drawx, drawy);
drawx++;
}
drawx = 0;
drawy++;
}
}
然后这样称呼它:
drawLoop(function(drawx, drawy){
if(nextBlock[drawx][drawy] != false){
base[drawx][drawy] = nextBlock[drawx][drawy];
}
});
当然,您可以更改传递给drawLoop的函数以满足您的需求。
您可以将函数作为变量注入到泛型函数中,例如
function genericDraw(xValidation) {
var drawx = 0;
var drawy = 0;
while(drawy < 22){
while(xValidation(drawX)){
if(nextBlock[drawx][drawy] != false){
base[drawx][drawy] = nextBlock[drawx][drawy];
}
drawx++;
}
drawx = 0;
drawy++;
}
}
其中 x验证 是
function someValidation(value) {
return (value < 10);
}
你称之为
genericDraw(someValidation);
for( var drawy = 0 ; drawy < 22 ; drawy++) {
for( var drawx = 0 ; drawx < 10 ; drawx ++) {
if(nextBlock[drawx][drawy] != false) {
base[drawx][drawy] = nextBlock[drawx][drawy];
}
}
}
相关文章:
- JavaScript/Jquery:一个特殊用途的for循环函数
- 为循环函数中的元素指定单击
- Jquery下一个和上一个按钮循环函数
- 循环函数(Javascript回调帮助)
- 循环函数不起作用
- 使用ajax调用循环函数
- 在Javascript中修改循环函数的参数
- 如何循环函数数组并在单击时一次执行一个
- 设置超时可以保存我的循环函数不被视为无响应
- 具有超时的循环函数
- j查询如何在一系列延迟后循环函数
- 如何将 JavaScript forEach 循环/函数转换为 CoffeeScript
- for 循环函数似乎未运行
- 对于内部循环函数(新手)
- 循环函数会导致它在 javascript 中无响应
- 循环函数
- 如何优化循环函数
- JS拒绝循环函数
- 中断循环函数
- 在 JavaScript 中循环函数可以吗?