#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, ""); }
Комментариев нет:
Отправить комментарий