Дублирование кода в JavaScript
при написании кода я, чтобы решить проблему, не нашёл ничего "умнее" чем продублировать часть кода, но как и ожидалось мне прилетело по шапке. Подскажите как объединить 2 практически идентичных куска кода в один метод? прилагаю код ниже.
const {
errors,
...statsJson
} = statistics.toJson()
const stats = {
........
): [],
}
if (statistics.stats) {
statistics.stats.forEach(_stats => {
const {
errors,
...statsJson
} = _stats.toJson()
const objectStats = {
.........
): [],
}
this.emitter.emit('stats', {
caller: 'webpack',
data: objectStats
}
as Emitter.Stats)
})
} else {
this.emitter.emit('stats', {
caller: 'webpack',
data: stats
}
as Emitter.Stats)
}
Ответы (1 шт):
Автор решения: Gosha
→ Ссылка
вам нужна функция которая будет возвращать объект, как пример:
const {errors, ...statsJson} = statistics.toJson();
const generateStats = (inputStats, statsJson) => () => {
.......
) : []
};
if (statistics.stats) {
statistics.stats.forEach(_stats => {
const {errors, ...statsJson} = _stats.toJson();
this.emitter.emit('stats', {caller: 'webpack', data: generateStats(_stats, statsJson)} as Emitter.Stats);
});
} else {
this.emitter.emit('stats', {caller: 'webpack', data: generateStats(webpackStats, statsJson)} as Emitter.Stats);
}