CyborgBeta
Banned
- Registriert
- Jan. 2021
- Beiträge
- 3.958
Hier wäre noch eine elegante Möglichkeit, wie ich finde:
https://jsfiddle.net/z6b8xysg/
Es gibt auch Getter in JS/TS, aber ich wollte das jetzt nicht so aufblähen...
Schönen Abend
Javascript:
class PG {
constructor(milestones) {
this.milestones = milestones;
this.sum = 0;
this.milestones2 = [];
this.milestones.forEach(m => {
this.sum += m;
this.milestones2.push(this.sum);
});
this.milestones3 = [];
this.milestones4 = [];
for (let i = 0; i < this.milestones.length; i++) {
this.milestones3[i] = this.milestones[i] / this.sum * 100.0;
this.milestones4[i] = this.milestones2[i] / this.sum * 100.0;
}
console.log(this.sum, this.milestones, this.milestones2, this.milestones3, this.milestones4);
}
fromValueToPercent(val) {
return val / this.sum * 100.0;
}
fromPercentToValue(per) {
return per / 100.0 * this.sum;
}
}
let progressbar = new PG([5, 1, 15, 3]);
console.log(progressbar.fromValueToPercent(23), progressbar.fromPercentToValue(62.5));
https://jsfiddle.net/z6b8xysg/
milestones4 beinhaltet dabei die Stellen, an denen eine Markierung in der Progressbar sein soll.Es gibt auch Getter in JS/TS, aber ich wollte das jetzt nicht so aufblähen...
Schönen Abend