Как можно упростить код?

Добрый день, я только учусь писать на джаваскрипте, у меня есть рабочий кусок кода, но он выглядит тяжело читаемым, как можно его переписать более компактно/читабельно
const data = [];
(async () => {
    try {
        const dom = await JSDOM.fromURL('https://www.kufar.by/l/r~minsk/koshki');
        const d = dom.window.document;
        let linkAll = d.querySelectorAll('section > a'); 
        linkAll.forEach((linkAll) => { 
            let linkhref = ((linkAll.getAttribute('href')));
            data.push({link: linkhref});
        });
        let imgAll = d.querySelectorAll('section > a > div > div > div > img');
        imgAll.forEach((imgAll) => { 
            let imgLink = ((imgAll.getAttribute('data-src')));
            data.push({img: imgLink});
        });
        
        let nameAll = d.querySelectorAll('section > a > div > div > div > h3');
        nameAll.forEach((nameAll) => {
            let nameText = nameAll.textContent;
            data.push({name: nameText});
        });
        let priceAll = d.querySelectorAll('section > a > div > div > div > p > span:nth-child(1)');
        priceAll.forEach((priceAll) => { 
            let priceText = priceAll.textContent;
            data.push({price: priceText});
        });
        let updateAll = d.querySelectorAll('section > a > div > div > div > span');
        updateAll.forEach(async (updateAll) => {
            let updateText = updateAll.innerHTML;
            data.push({update: updateText});
        });
        if (data.length > 0) {
            fs.writeFileSync('./resultKufarCat.txt', JSON.stringify(data));
            console.log(JSON.stringify(data, null, ' '));
            console.log(data.length);
        }
    } catch (e) {
        console.log(e);
    }
})();
  • Вопрос задан
  • 106 просмотров
Решения вопроса 1
hahenty
@hahenty
('•')
Ну например так
data.concat(
  [ ...d.querySelectorAll('section > a') ].map( a => ( { link: a.getAttribute('href') } ) ),
  [ ...d.querySelectorAll('section > a > div > div > div > img') ].map( i => ( { img: i.getAttribute('data-src') } ) ),
  [ ...d.querySelectorAll('section > a > div > div > div > h3') ].map( h => ( { name: h.textContent } ) ),
  /* и так далее */
)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы