Ну я так понимаю в
addLinkВам нужно делать
this.arr.push('('+ value +')') //, если value передано
//иначе просто
this.arr.push('( )');
А в
finishChain-
return this.arr.join(' ~~ ')
И как обнулить массив, в конце вызова
Ну и, видимо, в
finishChain так же делать
this.arr = [];
Итого в
finishChain текущее состояние сохранить в переменную, обнулить arr и вернуть то, что сохранили в переменную.
И судя по заданию у Вас
removeLink не совсем корректно удаляет. Там нужно делать минус 1 от переданного значения.