#javascript
Подскажите как сделать реверс строки без использования стандартных методов к примеру reverse() и т. д. Также не нужно использовать массив, дополнительные переменные. Нужно просто на месте менять значение строки К примеру здесь используется дополнительная переменная o; function reverse(s) { var o = ''; for (var i = s.length - 1; i >= 0; i--) o += s[i]; return o; } Ниже не используется дополнительная переменная, но такое решение не подходит, так как строка просто увеличивается в два раза, а потом уменьшается. function reverse(s) { for (var i = s.length - 1; i >= 0; i--) { s+= s[i]; } return s.substring(s.length/2); } Может есть другой способ это сделать ? К примеру менять первый и последний символ и так дальше пока не поменяется все. Как это реализовать?
Ответы
Ответ 1
Рекурсией: function reverse(s) { if (s === "") return ""; else return reverse(s.substr(1)) + s.charAt(0); } Или ES6(формально, без доп. переменных): function reverse(s) { return Array.prototype.reduce.call(s, (result, c) => c + result, ""); }
Комментариев нет:
Отправить комментарий