С точки зрения фактического цикла, что-то вроде этого может работать, но имеет много накладных расходов:
var avrLum = 0
for(var i = 0; i <= 235; i++) {
for(var j = 0; j <= 235; j++) {
for(var k = 0; k <= 235; k++) {
avrLum = (i+j+k)/3
LumaCheck(avrLum);
}
}
}
function LumaCheck (averageLuminosity) {
if (averageLuminosity < 215) {
Luma20();
} else if (averageLuminosity < 225) {
Luma10();
} else if (averageLuminosity < 230) {
Luma5();
} else if (averageLuminosity < 235) {
Luma1();
}
}
Для циклов обычно избегают из-за медлительности, но на самом деле это единственные операции, которые я могу придумать в JS, которые могут обрабатывать циклы с использованием диапазонов без использования массивов и других форм манипуляций. Это, по крайней мере, пройдет через все значения Red, Blue и Green.
Дайте мне знать, если это поможет.
(Кстати, это решение касается только цикла)