Вы не используете Array.reduce
правильно, первый параметр обратного вызова - это частичный результат или накопитель.
Array.reduce
принимает обратный вызов Функция, которая сама принимает еще четыре параметра, в вашем случае вам нужны первые два .
Синтаксис функции reduce
: reduce(callback[, initialValue])
:
обратный вызов Функция, выполняемая для каждого элемента в массиве, принимая четыре аргумента:
аккумулятор Аккумулятор накапливает возвращаемые значения обратного вызова;это накопленное значение, ранее возвращенное в последнем вызове обратного вызова или initialValue, если оно предоставлено (см. ниже).
currentValue Текущий элемент, обрабатываемый в массиве. **
initialValue Необязательное значение, используемое в качестве первого аргумента для первого вызова обратного вызова.Если начальное значение не указано, будет использован первый элемент в массиве.Вызов метода Reduce () для пустого массива без начального значения является ошибкой.
Чтобы найти сумму, передайте начальное значение 0, а затем добавьте к нему последующие элементы в массиве:
function codepoints(string) {
return string.split('').reduce( (acc,next) => acc + next.charCodeAt(0), 0)
}
console.log(codepoints("abc"));