1. взять код каждой буквы в числовом эквиваленте и вычесть 96('a' = 97, т.е. a = 1, счёт начинаем с 1)
2. Суммировать их
3. Взять остаток от деления полученной суммы на 26 (количество букв) и прибавить 97
То же самое с вашим подходом:
function addLetters(...letters){
let alphabet = 'abcdefghijklmnopqrstuvwxyz',
len = alphabet.length,
sum = len - 1// по умолчанию 'z'
for (i=0;i<letters.length;i++)
sum += alphabet.indexOf(letters[i]) + 1 // счет начинается с 1 (a=1)
return alphabet.substr(sum % len,1)
}
Засахаренная версия того же:
const addLetters= (...letters) => String.fromCharCode(letters.reduce((sum,v)=>sum+v.charCodeAt()-96,25) % 26 + 97)
Написал исходя из условий катки