Во время изучения NodeJS я пытался написать более краткую логику для этого блока кода (см. Ниже), которая могла бы либо ввести рекурсию , либо использовать методы ES6 дляобеспечить больше элегантности и лучшей читаемости.
Меня беспокоит вложение, которое происходит на for of loops
Мысли?
export function pleaseRefactorMe(measures, metrics, stats) {
if (!Array.isArray(metrics)) metrics = [metrics] //=> returns array [ 'temperature' ]
if (!Array.isArray(stats)) stats = [stats] //> returns array [ 'min', 'max', 'average' ]
let statistics = []
/**** refactor opportunity for nested for of loops ****/
for (let metric of metrics) {
for (let stat of stats) {
try {
let value = calculateStatsForMetric(stat, metric, measure)
if (value) {
statistics.push({
metric: metric,
stat: stat,
value: value
})
}
} catch (err) {
return err
}
}
}
return statistics
}