Это обычный цикл for:
for (var i = 0; i < n; i++) { ... }
Он используется для итерации массивов, а также просто для повторения некоторого процесса n
раз.
Я использую вышеупомянутую форму, но она отталкивает меня. Заголовок var i = 0; i < n; i++
выглядит ужасно и должен быть переписан буквально каждый раз, когда он используется.
Я пишу этот вопрос, потому что я нашел альтернативу:
repeat(n, function(i) { ... });
Здесь мы используем функцию repeat
, которая принимает два аргумента:
1. количество итераций,
2. функция, тело которой представляет процесс, который повторяется.
«Кодовый код» будет выглядеть так:
function repeat(n, f) {
for (var i = 0; i < n; i++) {
f(i);
}
}
(Мне известно о влиянии на производительность наличия двух дополнительных «уровней» в цепочке областей действия процесса)
Кстати, для тех из вас, кто использует библиотеку jQuery, вышеупомянутая функциональность может быть реализована из коробки с помощью метода $.each
, например:
$.each(Array(n), function(i) { ... });
Так что ты думаешь? Является ли эта repeat
функция допустимой альтернативой нативному циклу for? Каковы недостатки этой альтернативы (кроме производительности - я знаю об этом)?
Native:
for (var i = 0; i < 10; i++) {
// do stuff
}
Альтернатива:
repeat(10, function(i) {
// do stuff
});