const info = messagesData.querySelectorAll('info');
const date = messagesData.querySelectorAll('date');
const length = Math.max(info.length, date.length);
const contentReview = Array.from({length}, (_, i) => ({
info: info[i],
date: date[i]
}));
Но нет никаких гарантий, что info и date будут одинакового размера. Я использовал Math.max для вычисления размера, но в случае не совпадения размеров, для меньшего случая возникнут undefined.
Можно использовать Max.min тогда если в одном из случаев список меньше, мы просто укоротим результат, зато все будет безопасно.