Так как у вас там jquery, цикл в явном виде не нужен - метод click назначает обработчик все элементам коллекции:
$('button').click(e => $('.title').text($(e.target).text()));
Вот на чистом js - да, там придётся перебор вручную прописывать. Правда, и в этом случае использование цикла обязательным не будет - для этого у NodeList есть метод:
document.querySelectorAll('button').forEach(function(n) {
n.addEventListener('click', this);
}, function(e) {
this.innerText = e.target.innerText;
}.bind(document.querySelector('.title')));
А если вспомнить про такую штуку как делегирование, то можно вообще никак кнопки не перебирать:
document.addEventListener('click', ({ target: t }) => {
if (t.tagName === 'BUTTON') {
document.querySelector('.title').textContent = t.textContent;
}
});