Esta es la habitual para-loop:JavaScript for-loop alternative: repeat (n, function (i) {...});
for (var i = 0; i < n; i++) { ... }
Se utiliza para iterar sobre arrays, sino también para simplemente repetir algún proceso n
veces.
Uso el formulario mencionado anteriormente, pero me repele. El encabezado var i = 0; i < n; i++
es feo y tiene que ser reescrito literalmente cada vez que se usa.
Estoy escribiendo esta pregunta porque se me ocurrió una alternativa:
repeat(n, function(i) { ... });
Aquí se utiliza la función repeat
que toma dos argumentos: 1.
el número de iteraciones,
2. una función qué cuerpo representa el proceso que se repite.
El "código subyacente" sería así:
function repeat(n, f) {
for (var i = 0; i < n; i++) {
f(i);
}
}
(soy consciente de las implicaciones de rendimiento de tener dos "niveles" adicionales en la cadena alcance del proceso)
BTW , para aquellos de ustedes que usan la biblioteca jQuery, la funcionalidad mencionada anteriormente se puede lograr fuera de la caja a través del método $.each
así:
$.each(Array(n), function(i) { ... });
¿Qué piensas? ¿Es esta función repeat
una alternativa válida al ciclo for nativo? ¿Cuáles son los inconvenientes de esta alternativa (aparte del rendimiento, lo sé)?
Nativo:
for (var i = 0; i < 10; i++) {
// do stuff
}
Alternativa:
repeat(10, function(i) {
// do stuff
});
lo que flota su barco hombre ... tal vez es porque he estado que codifican como 25 años, pero la OMI para (..) la sintaxis tal como está funciona bien para mí (y la sintaxis es muy similar para muchos otros idiomas) para bucles) –
Una buena ventaja es que la variable 'i' no satura su alcance. Aparte de eso, tendría que decir * Meh *. :) – deceze
Me gusta la idea: _code su intención, no lo que la máquina hará para lograrlo. –