Ваш цикл для здесь:
for (var i = 0; i < data.length; i++) //archives
for (var i = 0; i < data.length; i++) //collections
должно быть:
for (var i = 0; i < data.archives.length; i++) //archives
for (var i = 0; i < data.collections.length; i++) //collections
тогда вы можете ссылаться на значения с помощью:
div.innerHTML =
'<span class="archives">' + data.archives[i].year1.title + '</span>' +
'<span class="archives">' + data.archives[i].year2.title + '</span>' +
'<span class="archives">' + data.archives[i].year3.title + '</span>';
Также бонусные баллы за просмотр VueJS или ReactJS, а также за обучение использованию console.log в инструментах отладки вашего браузера.
Edit:
После прочтения вашего комментария и повторного чтения вашего файла JSON я понимаю, что он вложен в массив. Вы можете удалить квадратные скобки, содержащие объект, который вы собираетесь использовать, или использовать:
for (var i = 0; i < data[0].collections.length; i++)
'<span class="archives">' + data[0].archives[i].year1.title + '</span>'
Квадратные скобки создают массив, содержащий объект, к которому вы пытаетесь получить доступ, куда вы можете добавить больше объектов, но, поскольку вы уже используете объект объектов, массив, содержащий его, кажется избыточным.