Всем привет.
Делаю подобие графика горизонтальных баров.
Нужна шкала X всегда от 0 до max. отрицательных и дробей не будет.
Работать должно как на chart.js
https://www.chartjs.org/docs/latest/...ntal-bar-chart
в data можно менять в live режиме.
Пример если max ==:
max == 5 тогда шкала будет такая - 0, 0.5, 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5
max == 65 - 0, 10, 20, 30, 40, 50, 60, 70
max == 379 - 0, 50, 100, 150, 200, 250, 300, 350, 400
max == 3469580 - 0, 500000, 1000000, 1500000, 2000000, 2500000, 3000000, 3500000
и т.д.
Набросал код для этого, вроде бы все работает, но есть вопрос - может можно сделать как то более скиловее, но что бы читабельно
function test(num) {
const step3 = Math.pow(10, String(Math.round(num)).length - 1);
let step = 0;
const c = num / step3;
if (c > 0 && c <= 1) {
step = 0.1;
} else if (c > 1 && c <= 2) {
step = 0.2;
} else if (c > 2 && c <= 5) {
step = 0.5;
} else if (c > 5 && c < 10) {
step = 1;
} else {
step = 2;
}
const arr = [0];
let count = 0;
while (count < num) {
count += step * step3;
arr.push(count);
}
console.log(arr);
alert(arr.join(', '))
}
test(3469580);