Добрый день. Сделал рабочий вариант, но он работает с теми характеристиками, которые я указал вручную, т.е. если характеристик будет больше, чем 5 или они называться по другому будут, то работать не будет, подскажите, как можно переделать код, чтобы он работал с любым количеством характеристик и с любыми их названиями, а то не могу сообразить. Пока понимаю, что надо бы для индексов не отдельные переменные создавать, а в массив их складывать, но как потом понять, какой элемент массива за какую характеристику отвечает? Или тут как-то по другому нужно?
var indicators = [‘сила’, ‘гибкость’, ‘выносливость’, ‘скорость’, ‘ловкость’];
var levels = [8, 15, 9, 12, 11];
var trainingTime = 30;
/Индексы характеристик в массиве/
var strIndex = 0;
var gibIndex = 0;
var vitIndex = 0;
var agiIndex = 0;
var dexIndex = 0;
/Логика следующая - сначала ищем в элементе с названиями характеристик нужную нам характеристику по названию и возвращаем ее индекс, т.е. пробегаем циклом по всем элементам массива/
for(var i=0;i<indicators.length;i++){
if(indicators[i]===‘сила’){ /нашли, на каком месте в массиве у нас стоит сила/
strIndex = i;
}
if(indicators[i]===‘гибкость’){ /нашли, на каком месте в массиве у нас стоит гибкость/
gibIndex = i;
}
if(indicators[i]===‘выносливость’){ /нашли, на каком месте в массиве у нас стоит выносливость/
vitIndex = i;
}
if(indicators[i]===‘скорость’){ /нашли, на каком месте в массиве у нас стоит скорость/
agiIndex = i;
}
if(indicators[i]===‘ловкость’){ /нашли, на каком месте в массиве у нас стоит ловкость/
dexIndex = i;
}
};
/Дальше увеличиваем нужные характеристики в зависимости от условий/
if(trainingTime<=30){
levels[agiIndex] += 3; /мы уже знаем, на каком месте в массике indicators стоит скорость - это записано в переменной agiIndex, в том же месте в массиве levels стоит значение этой скорости, и этот элемент мы и увеличиваем на 3, с остальными ниже также/
levels[dexIndex] += 3;
}
if(trainingTime>30&&trainingTime<=60){
levels[gibIndex] += 3;
}
if(trainingTime>60){
levels[strIndex] += 2;
levels[vitIndex] += 2;
};
/* Техническое задание
Напиши программу, которая будет следить за моими спортивными показателями.
В переменную indicators записан массив с моими спортивными характеристиками.
В массив levels записаны уровни каждого показателя. Каждый элемент этого массива соответствует по индексу элементу массива indicators.
В зависимости от времени тренировки, прокачиваются разные показатели. Время тренировки указано в минутах и записано в переменную trainingTime.
Если тренировка длится до 30 минут включительно, увеличивай скорость и ловкость на 3.
Если тренировка от 30 минут (не включая это значение) до одного часа (включая это значение), увеличивай гибкость на 3.
Если тренировка длится больше одного часа (не включая это значение), увеличивай силу и выносливость на 2.
*/