Для комментариев, пользователей и фотографий преобразуйте массив объектов в карту (или объект), ключи которой - это идентификаторы, а значения - это значения, которые вы хотите извлечь из него позже. Затем l oop над сообщениями и по идентификаторам в сообщении найдите соответствующие значения на Картах. Если все 3 карты имеют совпадение, выведите результат.
Обратите внимание, что нет необходимости в большой зависимости, такой как jQuery, просто сделать сетевой запрос и выполнить итерации по массиву - встроенные методы JS работает просто отлично:
Promise.all(
['posts', 'comments', 'users', 'photos'].map(
path => fetch('https://jsonplaceholder.typicode.com/' + path).then(res => res.json())
)
).then(([posts, comments, users, images]) => {
const commentBodiesByPostId = new Map(
comments.map(comment => [comment.postId, comment.body])
);
const imageUrlsById = new Map(
images.map(image => [image.id, image.url])
);
const userNamesById = new Map(
users.map(user => [user.id, user.name])
);
for (const post of posts) {
const commentBody = commentBodiesByPostId.get(post.id);
const imageUrl = imageUrlsById.get(post.id);
const userName = userNamesById.get(post.userId);
if (commentBody && imageUrl && userName) {
console.log(`Post title: ${post.title}\nPost image:${imageUrl}\nAuthor:${userName}\nComment:${commentBody}`);
}
}
});