@exgod
Трудно быть Богом.

Как объединить коллекции в JS?

На выходе есть две коллекции:

const dataLink = await page.$$eval('div', (arrData) => {
	return arrData.map(card => {
		const lnk;
		
		return {
			link: link
		}
	})
})

const dataInfo = await page.$$eval('div.art', (arrData) => {
	return arrData.map(card => {
		const lnk;
		const desc;
		
		return {
			img: img,
			desc: desc
		}
	})
})


Каким более грамотным образом можно связать dataLink и dataInfo, чтобы по итогу коллекция имела вид:

newCollection = {
	link: link,
	img: img,
	desc: desc
};


Пробовал что-то из этого:

var concatMap = new Map([...map1].concat([...map2]));


но по итогу получилась ерунда.
  • Вопрос задан
  • 110 просмотров
Решения вопроса 1
Enokin
@Enokin
Full-stack разработчик
const newCollection = dataLink.map(item1 => {
  const item2 = dataInfo.find(i => i.lnk === item1.lnk);
  return { ...item1, ...item2 };
});


Этот код сопоставляет массив ссылок на данные и для каждого элемента находит соответствующие данные в элементе, проверяя, соответствует ли свойство lnk. Наконец, он создает новый объект путем объединения свойств обоих элементов и возвращает его. Результатом будет массив объектов c обьектами { link: link, img: img, desc: desc }.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы