Вы можете попробовать что-то вроде этого. Я уверен, что есть место для рефакторинга. Я не мог обойти, используя функцию разделения. Может быть, кто-то знает способ сделать это без разделения.
Код для настройки, можете поместить его в вашу библиотеку .js
Код для его использования (имеет код на стороне клиента, только потому что он был протестирован в браузере):
var sentence = "My Stack is Overflowing."
document.write(sentence.reverseLetters() + '<br />');
document.write(sentence.reverseWords() + '<br />');
Отрывок:
String.prototype.aggregate = function(vals, aggregateFunction) {
var temp = '';
for (var i = vals.length - 1; i >= 0; i--) {
temp = aggregateFunction(vals[i], temp);
}
return temp;
}
String.prototype.reverseLetters = function() {
return this.aggregate(this.split(''),
function(current, word) {
return word + current;
})
}
String.prototype.reverseWords = function() {
return this.aggregate(this.split(' '),
function(current, word) {
return word + ' ' + current;
})
}
var sentence = "My Stack is Overflowing."
document.write(sentence.reverseLetters() + '<br />');
document.write(sentence.reverseWords() + '<br />');