Sedbol
@Sedbol

Прогресс шкала с уровнями?

Как лучше сделать функцию? Нужно рассчитать сколько я набрал на данном уровне процентов они нужны для процентной шкалы. Получить какой сейчас уровень, и какой будет следующий.
Можно например в виде массива [(уровень сейчас), (следующий уровень),(набрано процентов на этом уровне) ]
Уровень я получаю таким образом:
const arr= [
        [0, 0, 0],
        [1, 0, 49],
        [2, 50, 149],
        [3, 150, 349],
        [4, 350, 849],
        [5, 850, 1849],
        [6, 1850, 3849],
        [7, 3850, 5849],
    ];
    const lvlresponse = function(num) {
        let result = arr.reduce((acc, item) => {
            for(let i = 0; i<= 2; i++) {
                if(num >= item[1] && num <= item[2] ) {
                    return acc = item[0];
                }
            }
            return acc;
        }, 0);
        return result;
    };
console.info(lvlresponse(30) )

Массив arr это массив с уровнями, первая ячейка это уровень,вторая ячейка начало рейтинга на данном уровне, вторая это конец уровня. Как сделать функцию что бы получить из неё массив с данными?
  • Вопрос задан
  • 61 просмотр
Решения вопроса 2
hzzzzl
@hzzzzl
так что именно надо вернуть?
  • Нужно рассчитать сколько я набрал на данном уровне процентов
  • Получить какой сейчас уровень, и какой будет следующи
  • сделать функцию что бы получить из неё массив с данными?


function get(num) {
  const level = arr.find(lvl => lvl[1] <= num && lvl[2] >= num)
  if(!level) return 0
  const [from, to] = [level[1], level[2]]
  console.log(from, '->', num, '->', to)
  const percent = (num - from) / (to - from) * 100 + '%'
  return percent
}

get(1800)
// 850 "->" 1800 "->" 1849
// "95.09509509509509%"
Ответ написан
Stalker_RED
@Stalker_RED
Зачем записывать начало и конец уровня, если можно только начало, например?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы