V
Valimor
Изучаю язык поэтому составляю всякие простенькие программки, вот с одной из них и проблема
<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">Текст программы1</div></div><div class="sp-body"><div class="sp-content"><!--shcode--><pre><code class='Javascript'>function one(s1,s2,simvolstr)
{//начало функции
var poisk=0 //до оператора цикла
while(true) //цикл
{
k=s1.indexOf(s2,poisk)
if(k>=0)
{
s1=s1.slice(poisk,k)+simvolstr+s1.slice(k+1)
poisk=k+1
}
else break
}
return s1
}//конец функции, дальше вызов функции во внешней проге
alert(one("Хай таварищи маи","а","о"))[/CODE]
Функция должна получить строковые данные, далее обработать их заменив все символы "а" на "о", ну и выдать результат.
//Переменная poisk объявлена до оператора цикла.
Но в результате вместо "Хой товорищи мои" получается: ->-> .
Но если переменную poisk объявить в методе indexOf в самом цикле вот так:
<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">Текст программы2</div></div><div class="sp-body"><div class="sp-content"><!--shcode--><pre><code class='Javascript'>function one(s1,s2,simvolstr)
{//начало функции
while(true)
{
k=s1.indexOf(s2,poisk=0)// poisk непосредственно в методе
if(k>=0){
s1=s1.slice(poisk,k)+simvolstr+s1.slice(k+1)
poisk=k+1
}
else break
}
return s1
}//конец функции, дальше вызов функции во внешней проге
alert(one("Хай таварищи маи","а","о"))[/CODE]
То функция работает и выводит корректный результат("Хой товорищи мои"). Вот не могу понять почему так... вроде в первом листинге переменную объявил нормально.
<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">Текст программы1</div></div><div class="sp-body"><div class="sp-content"><!--shcode--><pre><code class='Javascript'>function one(s1,s2,simvolstr)
{//начало функции
var poisk=0 //до оператора цикла
while(true) //цикл
{
k=s1.indexOf(s2,poisk)
if(k>=0)
{
s1=s1.slice(poisk,k)+simvolstr+s1.slice(k+1)
poisk=k+1
}
else break
}
return s1
}//конец функции, дальше вызов функции во внешней проге
alert(one("Хай таварищи маи","а","о"))[/CODE]
Функция должна получить строковые данные, далее обработать их заменив все символы "а" на "о", ну и выдать результат.
//Переменная poisk объявлена до оператора цикла.
Но в результате вместо "Хой товорищи мои" получается: ->-> .
Но если переменную poisk объявить в методе indexOf в самом цикле вот так:
<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">Текст программы2</div></div><div class="sp-body"><div class="sp-content"><!--shcode--><pre><code class='Javascript'>function one(s1,s2,simvolstr)
{//начало функции
while(true)
{
k=s1.indexOf(s2,poisk=0)// poisk непосредственно в методе
if(k>=0){
s1=s1.slice(poisk,k)+simvolstr+s1.slice(k+1)
poisk=k+1
}
else break
}
return s1
}//конец функции, дальше вызов функции во внешней проге
alert(one("Хай таварищи маи","а","о"))[/CODE]
То функция работает и выводит корректный результат("Хой товорищи мои"). Вот не могу понять почему так... вроде в первом листинге переменную объявил нормально.