Как собрать массив объектов из массива ключей и массива массивов значений:
const combine = (keys, values, defaultValue = () => null) =>
Array.from(
{ length: Math.max(...values.map(n => n.length)) },
(_, i) => Object.fromEntries(keys.map((k, j) => [
k,
values[j][i] ?? defaultValue(i, j, k),
]))
);
Собираем:
const keys = [ 'info', 'date' ];
// собираем элементы
const elements = combine(
keys,
keys.map(k => messagesData.querySelectorAll(`.${k}`)),
(i, j, k) => `элемент .${k} с индексом ${i} отсутствует`
);
// или, текстовое содержимое элементов
const texts = combine(
keys,
keys.map(k => Array.from(
messagesData.getElementsByClassName(k),
n => n.textContent
)),
);