1. Начинать нужно с 25, чтобы в случае пустого массива входящих данных выдавало z
2. Проще взять остаток от деления на количество букв в алфавите, т.к. количество кругов знать ни к чему.
3. В результате прибавить 97, т.к.
а это 97 по счету символ ascii
В итоге получаем такую конструкцию:
Начинаем с 25, получаем вход
a,b, берём их порядковый номер в ascii и вычетаем 96 (получаем 1 и 2).
25+1+2 = 28
28 % 26 = 2
2 + 97 = 99
ascii[99]=c
Если до сих пор не понятно, то попробуйте таким же образом в голове прорешать большое количество букв на входе(чтоб пара кругов по алфавиту сделало)
const addLetters= (...letters) => String.fromCharCode(letters.reduce((sum,v)=>sum+v.charCodeAt()-96,25) % 26 + 97)