14 lines
802 B
JavaScript
14 lines
802 B
JavaScript
export default {
|
||
/**
|
||
* Создает данные дл круговой диаграммы из набора значений v0,v1,v2,v3 -> [{a0: 0, a1: v0}, {a0: v0, a1: v0+v1}, {a0: v0+v1, a1: v0+v1+v2},]
|
||
* @param { [Number] } values Значения долей
|
||
* @param { boolean } norm Нормировать ли значения диапазонов в отрезок 0-1
|
||
* @returns Массив с диапазонами долей 1,2,3,4 -> [{0,0.1},{0.1,0.3},{0.3,0.6},{0.6,1}]
|
||
*/
|
||
make_ranges(values, norm = true) {
|
||
let ranges = values.reduce((s, c, i) => [...s, {...c, a0: i && s[i - 1].a1, a1: c + (i && s[i - 1].a1)}], [])
|
||
let max = ranges[ranges.length - 1].a1
|
||
return norm ? ranges.map(x => ({a0: x.a0 / max, a1: x.a1 / max})) : ranges
|
||
},
|
||
};
|