Вы можете взять массив ключей, вычислить вычисленное значение, отменить смещение 100
и назначить требуемую цель.
const
d = store.state.logbook.summary,
data = ['AIR', 'PIC', 'PMC', 'VO', 'TRNG'].map(k => +(d[k] * 100 / d.TOT).toFixed(2));
data.unshift(100);
this.chartData = data;
console.log(this.chartData);
Еще один взгляд на проблему, разбив каждую часть на более мелкие единицы, например
- получение значения объекта
- получение значения в процентах путем принятия первого связанного параметра функции и сопоставления значений
- форматирование значения втребуется максимум две цифры.
const
getPercent = (whole, part) => part * 100 / whole,
getNumFixed2 = value => +value.toFixed(2),
d = { AIR: 28, PIC: 9, PMC: 2, VO: 56, TRNG: 25, TOT: 120 }, // store.state.logbook.summary,
data = ['AIR', 'PIC', 'PMC', 'VO', 'TRNG']
.map(k => d[k])
.map(getPercent.bind(null, d.TOT))
.map(getNumFixed2);
data.unshift(100);
console.log(data);