Привет!
Решаю задачу:
Есть очередь из людей перед кофе-автоматом, каждый человек из этой очереди возьмёт себе 2 порции кофе.
После того, как человек взял 2 порции кофе, он возвращается в конец очереди, чтобы повторить всё сначала.
Нужно вычислить, передав функции порядковый номер порции кофе, кто её купил.
Я написал такой код:
https://jsfiddle.net/1Lfky51k/
function nextPerson ( r ) {
var names = ["Kurt", "Dave", "Kris", "Pat", "Steve"];
if ( r % 10 === 1 || r % 10 === 2 ) {
res = names[0]
return res
}
else if ( r % 10 === 3 || r % 10 === 4 ) {
res = names[1]
return res
}
else if ( r % 10 === 5 || r % 10 === 6 ) {
res = names[2]
return res
}
else if ( r % 10 === 7 || r % 10 === 8 ) {
res = names[3]
return res
}
else if ( r % 10 === 9 || r % 10 === 0 ) {
res = names[4]
return res
}
}
alert ( nextPerson ( 17 ) )
Вопрос: каким образом можно оптимизировать мой код для такой задачи в сторону минимизации?
-------------------
И хотелось бы усложнить условие:
что если мы не знаем всех людей в очереди, т.е. будут приходить новые люди (динамическое добавление в массив).
Как тогда продумать вычисление?
Что-то вроде
var names = ["Kurt", "Dave", "Kris" ]
var newName = names[names.length] = "Pat" //Правильно?
А как для вычислить чашку кофе для newName?