Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.05.2011, 20:15   #1
aly-lucenko
Пользователь
 
Регистрация: 09.04.2010
Сообщений: 29
По умолчанию Работа со строками в JavaScript

Дана последовательность слов. Напечатать все слова, предварительно выполнив преобразования по правилу: заменить в каждом слове первую встречную букву а буквой о, удалив все остальные (если в слове нет такой буквы, то ничего не делать).

Первой идеей было поместить строку в массив и работать как с элементами массива...не сложилось...

вот пример, того что я нахимичила, но оно не совсем верно работает..
Код:
<html>
<body>
      <HEAD>
       <SCRIPT type="text/javascript"> 
        var string=prompt('Введите последовательность слов', '');
        var array=string.split(' ');
        /* alert(array.length);*/
var s1=array[0];
var t1=s1.indexOf('a');
/*alert(t1);*/
 var begin_end= s1.slice(0,t1) + 'o';
   var end_str = s1.slice((t1+1),(s1.length));
var str=begin_end+end_str;
alert(str);
for ( var i=0; i<str.length; i++) 
{
        if(str.charAt(i)=='a')
        {
          var  begin_end = s1.slice(0,i);
          var end_str = s1.slice(i+1,str.length);
str=begin_end+end_str; 
        }
} 
           
alert(str);

      </SCRIPT>
      </HEAD>
</body>
</html>
Подскажите, как правильно реализовать данную задачу)
aly-lucenko вне форума Ответить с цитированием
Старый 17.05.2011, 20:34   #2
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Не специалист в этом деле, но
Код:
function transform(string) {
    var firstA = true;
    var retstring = "";

    for (var i = 0; i < string.length; i++) {
        if (string[i] == 'a') {
            if (firstA) {
                retstring += 'o';
                firstA = false;
            }
            continue;
        }
        retstring += string[i];
    }

    return retstring;
}

var line = prompt("Введите последовательность слов", "");
var words = line.split(' ');

for (var i = 0; i < words.length; i++) {
    words[i] = transform(words[i]);
    alert(words[i]);
}
netrino вне форума Ответить с цитированием
Старый 17.05.2011, 21:46   #3
aly-lucenko
Пользователь
 
Регистрация: 09.04.2010
Сообщений: 29
По умолчанию

спасибо огромное)
а вы не подскажете, как сделать так, что бы в конце выводились слова не в разных сообщениях, а в одном)
и вывести с конечным результатом еще и начальную строку
aly-lucenko вне форума Ответить с цитированием
Старый 17.05.2011, 21:51   #4
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Заменить последний цикл на
Код:
for (var i = 0; i < words.length; i++)
    words[i] = transform(words[i]);

alert("Начальная строка: " + line + "\nНовая строка: " + words.join(' '));
netrino вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа для JavaScript программистов i-v-i JavaScript, Ajax 0 27.01.2011 17:19
Работа с матрицами (норма матрицы, работа со строками) Neitrosha Помощь студентам 1 26.11.2010 20:19
Работа с базой данных через Javascript? gred JavaScript, Ajax 4 20.08.2010 07:49
Удаленная работа: JavaScript программист VitaliyK Фриланс 1 24.09.2008 22:02