04.06.2013, 09:13
|
Новичок на форуме
|
|
Регистрация: 04.06.2013
Сообщений: 4
|
|
Обратный порядок букв в каждом втором слове
Доброго времени суток уважаемые,
В универе задали задачку написать сценарий, который будет высчитывать количество слов в веденном предложении, а потом менять порядок букв в каждом втором слове на обратный.(к примеру: "мама мыла раму мылом", должно получится: "мама алым раму молым" Причем можно использовать только: prompt, alert, charAt (и так же attribut.length), операторы if/else и циклы(т.е. функции, массивы и прочее использовать низя). С подсчетом слов вроде бы проблем нету, а вот как обратить буквы... даже не знаю с чего начать.
Пожалуйста помогите...
|
|
04.06.2013, 09:22
|
Профессор
|
|
Регистрация: 12.12.2012
Сообщений: 1,398
|
|
Интересно как не использовать массив, если строка - это массив символов?
|
|
04.06.2013, 12:27
|
Новичок на форуме
|
|
Регистрация: 04.06.2013
Сообщений: 4
|
|
Вот это-то меня и сбивает с толку... Из задания: "... в задании Вы не можете использовать ни каких других функций, ни массивы, ни ваши собственные функции..."
|
|
04.06.2013, 12:41
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
MSiUzaQ,
в принципе строка букв - автомассив , особенно с учетом
"(и так же attribut.length)"
http://javascript.ru/String/charAt
|
|
04.06.2013, 16:14
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,126
|
|
MSiUzaQ,
Вариант ...
<!DOCTYPE HTML>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
</head>
<body>
<script>
var str = prompt("Ваше предложение", "мама мыла раму мылом"), out = "", str2 ="", n = 0;
for (var i=0; i<str.length; i++) {
if(str.charAt(i)==" ") {str2+=" "+out;out="",n++}
else if(n%2)out= str.charAt(i)+out;
else out+= str.charAt(i)
}
alert(str2+" "+out + "\nСлов "+ ++n)
</script>
</body>
</html>
Последний раз редактировалось рони, 04.06.2013 в 16:22.
|
|
04.06.2013, 17:39
|
Аспирант
|
|
Регистрация: 01.04.2008
Сообщений: 52
|
|
Сообщение от MSiUzaQ
|
Вот это-то меня и сбивает с толку... Из задания: "... в задании Вы не можете использовать ни каких других функций, ни массивы, ни ваши собственные функции..."
|
Странное задание. Перевернуть всю строку без циклов и ветвлений можно легко:
Код:
|
var str = prompt("Ваше предложение", "мама мыла раму мылом?");
alert(str.split('').reverse().join('')); |
Но переворачивать не всю строку, а только четные элементы без циклов и ветвлений, это интересно. Сразу и не придумаешь... А в задании нет ошибки?
|
|
04.06.2013, 18:36
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,126
|
|
Сообщение от vashurin
|
только четные элементы без циклов и ветвлений, это интересно
|
Вариант ...
<!DOCTYPE HTML>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
</head>
<body>
<script>
var str = prompt("Ваше предложение", "мама мыла раму мылом");
alert([str.replace(/(\S+\s+)(\S+)/g , function (a,b,c )
{
return b + c.split('').reverse().join('')
}), str.split(' ').length]);
</script>
</body>
</html>
|
|
04.06.2013, 18:45
|
|
Профессор
|
|
Регистрация: 11.09.2010
Сообщений: 8,804
|
|
Ну вобще-то цилкы и ветвления использовать можно)
Проитайте задание внимательно )
|
|
04.06.2013, 21:02
|
Новичок на форуме
|
|
Регистрация: 04.06.2013
Сообщений: 4
|
|
|
|
04.06.2013, 21:03
|
Новичок на форуме
|
|
Регистрация: 04.06.2013
Сообщений: 4
|
|
Всем большое спасибо за соучастие)
|
|
|
|