Общая переменная прогресса для 3х последовательных полос прогресса
x это текущий общий прогресс
y это максимальный прогресс
z это текущий отдел
x = растет постепенно (к примеру по 10 в секунду)
y = 100 * (количество отделов)
z = нумерация отдела
Возмем на примере 3 отдела каждый по 100% в итоге получаем 300
X растет по 10 а значит каждый отдел будет заполняться по 10 секунд
Не могу сделать функцию которая принимая X Y Z будет возращать прогресс нужного нам отдела...
вот примеры параметров и ответ который должен получиться
x=27 y=300 z=1 Ответ = 27%
x=105 y=300 z=1 Ответ = 100%
x=150 y=300 z=2 Ответ = 50%
x=201 y=300 z=2 Ответ = 100%
x=201 y=300 z=3 Ответ = 1%
Буду очень благодарен Вам за помощь, никак не могу адекватно реализовать функцию хоть понимаю что не особо и сложно...
Ответы (2 шт):
console.log( bubu( 27, 300, 1) ); // 27
console.log( bubu(105, 300, 1) ); // 100
console.log( bubu(150, 300, 2) ); // 50
console.log( bubu(201, 300, 2) ); // 100
console.log( bubu(201, 300, 3) ); // 1
console.log( bubu( 27, 300, 2) ); // 0
console.log( bubu( 200, 300, 2) ); // 100
function bubu(x, y, z) {
z *= 100;
return ( z - 100 < x && x < z ) ? ( x % 100 ) : 100 * ( x >= z )
}
100 * ( x >= z ) :
- 100 * true → 100 * 1 → 100
- 100 * false → 100 * 0 → 0
Примерно так:
const rawProgress = x - (z - 1) * 100
const progress = rawProgress > 100 ? 100 : rawProgress