Я беру массив объектов (пусть необработанных), получаю значение с помощью displayName и вставляю его в (const defaultCirclePackStructure) с помощью displayName, это для упаковки круга d3.Вот Codepen
let convertMetricDataToD3 = (arrayMetricData) => {
var circlePackData = defaultCirclePackStructure
let operationSumTime = 0
arrayMetricData.forEach(element => {
insertMetricData(element, circlePackData)
if(element.displayName === "Equipment Uptime" || element.displayName === "Equipment Downtime"){
operationSumTime+=element.value
}
});
circlePackData.children[0].children[1].value =
Math.round(operationSumTime) + "%"
return circlePackData;
}
Это работает, но оно настолько хрупкое и неэффективное, как я могу улучшить его, используя карту, уменьшить, отфильтровать или что-то еще.