Как вы переворачиваете строку в JavaScript? - PullRequest
393 голосов
/ 06 июня 2009

Как вы переворачиваете строку на месте (или на месте) в JavaScript при передаче функции с оператором return? Все без использования встроенных функций? .reverse(), .charAt() и т. Д.

Ответы [ 44 ]

0 голосов
/ 09 ноября 2015

Я думаю, это будет работать для вас

function reverse(str){
    str = str.split("").reverse().join("").split(" ").reverse().join(" ");
    console.log(str)
}
0 голосов
/ 12 февраля 2019
word.split('').reduce((acc, curr) => curr+""+acc)
0 голосов
/ 06 июня 2009

Еще один вариант (он работает с IE?):

String.prototype.reverse = function() {
    for (i=1,s=""; i<=this.length; s+=this.substr(-i++,1)) {}
    return s;
}

EDIT:

Это без использования встроенных функций:

String.prototype.reverse = function() {
    for (i=this[-1],s=""; i>=0; s+=this[i--]) {}
    return s;
}

Примечание: это [-1] содержит длину строки.

Однако невозможно изменить строку на месте, так как присвоение отдельные элементы массива не работают с объектом String (защищены?). То есть Вы можете делать присваивания, но результирующая строка не изменяется.

0 голосов
/ 19 июня 2012
function reverse_string(string)
{
var string;

var len = string.length;

var stringExp = string.split('');
var i;
for (i = len-1; i >=0;i--)
{
var result = document.write(stringExp[i]);
}

return result;
}

reverse_string("This is a reversed string");

// вывод: gnirts desrever si sihT

...