привет!
имеется такой код:
const SECTIONS = [
'top',
'bottom',
'head',
'shoes',
'bag',
'accs',
];
const prepareShareItems = () => {
const person = store.getState().globals.person; // объект { top: { slide: 0, list: [...] }, bottom: { slide: 0, list: [...] }, head: { slide: 0, list: [...] } etc}
const items = store.getState().globals.items; // массив объектов
let result;
for (let i = 0; i < SECTIONS.length; i++) {
const _section = SECTIONS[i];
const _itemIndex = person[_section].slide;
const _itemId = person[_section].list[_itemIndex];
const _item = items.find((item) => item.id === _itemId);
result = {
...result,
[_section]: _item.image,
};
}
return result;
};
в двух словах про алгоритм: получаем массив секций (SECTIONS), далее каждый элемент массива используем в качестве ключа person; получаем slide каждой секции в person; item id у которого индекс _itemIndex; ищем в items объект с ид _itemIndex и забируем у него image и закидываем в result.
Вопрос следующий: является ли это плохим кодом? Да, многие вещи можно сократить, но так уж с университета повелось, что каждый шаг алгоритма мне для понимания удобнее писать отдельно. Просто часто вижу что подобные алгоритмы пишут чуть ли не в одну длинную строку, где ничего не понятно и не структурировано