1 Востаннє редагувалося Betterthanyou (01.12.2014 18:14:38)

Тема: Переприсвоєння значення елемента масиву

Як здійснити переприсвоєння значення елемента масиву ? В коді що нижче я очікую результат такий:
Якщо ввести в форму 12345 то елемент масиву 1 буде дорівнювати 1 (тобто str[1]='1';) і в результаті ми одержимо 11345 але чомусь не працює, чому ?

var str = form.viraz.value;
    str[1]='1';
    alert(str);

2

Re: Переприсвоєння значення елемента масиву

А хто сказав, що form.viraz.value - масив?

3 Востаннє редагувалося mike (01.12.2014 18:21:08)

Re: Переприсвоєння значення елемента масиву

Глянь на  Splice

Прихований текст

Нумерація в масиві починається з 0 а не з 1

Подякували: Сергій781

4

Re: Переприсвоєння значення елемента масиву

koala написав:

А хто сказав, що form.viraz.value - масив?

Там набір символів 12345 звернутись будь-якого можна за допомогою str[індекс]

5

Re: Переприсвоєння значення елемента масиву

var myFish = ['angel', 'clown', 'mandarin', 'surgeon']; - це двовимірний масив, чи елементом масиву в JS
може бути слово ?
Я тут зробив таку веб-сторінку, що зрозуміліше було що я хочу, коли я впишу інформацію в поле

<input name="viraz" value ="" size=20 maxlegnth=20>

і підтверджу натиском визветься функція "f" str присвоюється form.viraz.value, мені потрібно перший елемент переприсвоїти одиниці str[1]='1'; це можливо ?

<form>
<input name="viraz" value ="" size=20 maxlegnth=20>
<input type="BUTTON" value ="Підтвердить" ONCLICK="f(this.form);">
</form>
<script>
function f(form)
{
    var str = form.viraz.value;
    str[1]='1';
    alert(str);
}

6

Re: Переприсвоєння значення елемента масиву

А хто вам сказав, що в JS  рядок - це масив символів? Можете посилання на літературу?

7 Востаннє редагувалося VTrim (01.12.2014 19:20:51)

Re: Переприсвоєння значення елемента масиву

koala написав:

А хто вам сказав, що в JS  рядок - це масив символів? Можете посилання на літературу?

Взагалі-то так

<script>

var string = "VTrim";
document.write(string[1]);

</script>

Але я все одно не зрозумів шо автор хоче..
Може змінити значення тексту форми після кліку.
Тут же немає списку для вибору значень форми,типу select,шоб це було масивом.

8

Re: Переприсвоєння значення елемента масиву

VTrim написав:
koala написав:

А хто вам сказав, що в JS  рядок - це масив символів? Можете посилання на літературу?

Взагалі-то так

<script>

var string = "VTrim";
document.write(string[1]);

</script>

Але я все одно не зрозумів шо автор хоче..
Може змінити значення тексту форми після кліку.

Що незрозуміло ? я ж на початку теми написав. я очікую результат такий:
Якщо ввести в форму 12345 то елемент масиву 1 буде дорівнювати 1 (тобто str[1]='1';) і в результаті ми одержимо 11345 але чомусь не працює, чому ?

9 Востаннє редагувалося Invader (01.12.2014 20:15:25)

Re: Переприсвоєння значення елемента масиву

Рядки в JavaScript незмінні. Не можна взяти і переприсвоїти певний елемент рядку за його індексом.
Викручуйтесь використанням рядкових методів, створюйте і повертайте частково змінені копії рядків, конвертуйте рядок в масив і навпаки, наприклад так:

var a = String(1234)
f = a.split('')
f[1] = 'foosroda'
alert(f[1])

10 Востаннє редагувалося Invader (01.12.2014 20:19:11)

Re: Переприсвоєння значення елемента масиву

var myFish = ['angel', 'clown', 'mandarin', 'surgeon']; - це двовимірний масив, чи елементом масиву в JS
може бути слово ?

Масив одновимірний. Елементом масив може бути слово.

мені потрібно перший елемент переприсвоїти одиниці str[1]='1'; це можливо ?

Нумерація елементів починається з нуля тож str[1] це 2-й елемент. Якщо str це рядок, то неможливо.

Подякували: Betterthanyou1

11

Re: Переприсвоєння значення елемента масиву

Invader написав:

var myFish = ['angel', 'clown', 'mandarin', 'surgeon']; - це двовимірний масив, чи елементом масиву в JS
може бути слово ?

Масив одновимірний. Елементом масив може бути слово.

мені потрібно перший елемент переприсвоїти одиниці str[1]='1'; це можливо ?

Нумерація елементів починається з нуля тож str[1] це 2-й елемент. Якщо str це рядок, то неможливо.

Ну добре я тут трохи подумав і написав таку функцію delete_

<form>
<input name="viraz" value ="" size=20 maxlegnth=20>
<input type="BUTTON" value ="Підтвердить" ONCLICK="f(this.form);">
</form>
<script>
<form>
<input name="viraz" value ="" size=20 maxlegnth=20>
<input type="BUTTON" value ="Підтвердить" ONCLICK="f(this.form);">
</form>
<script>
function f(form)
{
    var str = form.viraz.value;
str=delete_(str);
alert(str);
}

function delete_(r)
{
var str_1="";
for(var i=0;i<5;i++)
{
if(i!=1)
str_1+=r[i];
else
str_1+="1";
}
return str_1;
}
</script>

І трішки про нумерацію, я не розумію чому ви вважаєте що я думаю що нумерація починається з 1 якщо ви уважно почитаєте що я писав, 12345 такою дією str[1]='1' я хотів отримати 11345 (а не 12345) якщо почитати str[0]==1,str[1]==2,... все правильно

12 Востаннє редагувалося VTrim (02.12.2014 11:14:13)

Re: Переприсвоєння значення елемента масиву

<form>
<input name="viraz" value ="" size=20 maxlegnth=20>
<input type="BUTTON" value ="Підтвердить" ONCLICK="f(this.form);">
</form>

<script>

function f(form)
{
var arr = [];

var str = form.viraz.value;

for(i=0; i<str.length--; i++)
{
(i == 1) ? arr[i] = 1 : arr[i] = str[i];
}

alert(arr.join(''));
}

</script>
Подякували: Betterthanyou1