Страницы

Поиск по вопросам

пятница, 14 февраля 2020 г.

Как сделать реверс строки без использования стандартных методов?

#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, ""); }

Комментариев нет:

Отправить комментарий