Привет!
Прошу помочь оптимизировать код.
Задание:
есть словосочетание, состоящее из 2-х слов, переданное аргументом в функцию.
Нужно поменять первые буквы в словах этого словосочетания местами.
Например, ввели "New York", должны получить "Yew Nork", "In Utero" -> "Un Itero" и т.д. Словосочетание всегда из 2-х слов.
Написал вот такую функцию:
function exchange( input ) {
var f = input.charAt(0),//первая буква первого слова в словосочетании
str = input.substr( input.indexOf(" ") + 1 ),//второе слово в словосочетании
s = str.charAt(0);//первая буква второго слова в словосочетании
var e = f,//вводим резервную переменную для сохранения значения первой буквы
f = s, //поменяли буквы местами
s = e; //поменяли буквы местами
var pre1 = input.replace( input.charAt(0), f ),//заменили первую букву первого слова в словосочетании
res2 = str.replace( str.charAt(0), s );//заменили первую букву второго слова
var res1 = pre1.substring(0, pre1.indexOf(" "));//"обрезали" второе слово в исходном словосочетании
var result = res1 + " " + res2;//соединили изменённые слова в новое словосочетание = получили ответ
}
exchange("Dave Grohl")
//result = Gave Drohl
Но есть подозрение, что такая задача решается намного компактнее. Кому не сложно, напишите, пожалуйста, компактный пример решения, используя regEx.