Как вернуть первоначальное значение переменной при повторном выполнении функции?
можно стилями обрезать:
.truncate {
  width: 250px; /* подставьте вашу ширину блока */
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

Комментарии по коду в вопросе:

метод строки link() — устаревший и не рекомендуется к использованию.
метод slice() есть и у строки, т.ч. не обязательно преобразовывать строку в массив и обратно.
вместо строки '...' можно использовать HTML-символ &hellip; (троеточие одним символом)
; в конце строк кода лучше не пропускать

Если длина заголовка слишком длинная (headlineArray.length > 29), он обрезается и добавляется троеточие (headlineArray = headlineArray.slice(0,28)+'...').Делайте через цсс, так не придется издеваться над кодом, и что самое главное, автоматически будет обрезаться лишний текст, не зависимо от количества символов, которые бывают разные по ширине.