Я был в кодевом утром, и есть эта Kata с просьбой о функции, чтобы изменить строку, переданную как параметр, методом рекурсии.Пожалуйста, объясните эту рекурсивную функцию javascript
Лучшим решением, перечисленным для этой проблемы, было это.
function reverse(str) {
return str.length > 1 ? reverse(str.slice(1)) + str[0] : str;
}
Я исследовал для этого все это утро, и я до сих пор не знаю, что происходит здесь:
+ str[0]
Может кто-нибудь пожалуйста, разъяснить это для меня?
Я полагаю, что «лучшее решение» означает лучшее рекурсивное решение?Я сомневаюсь, что это эффективный способ изменить строку. –
Это плохое решение, поскольку рекурсивный вызов не находится в положении хвоста. Попробуйте преобразовать функцию в хвостовую рекурсивную версию, чтобы лучше понять предмет. Подсказка: стиль прохождения аккумулятора. – ftor