Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Собрать переменную по частям, реально? (https://javascript.ru/forum/dom-window/7134-sobrat-peremennuyu-po-chastyam-realno.html)

Reflexion 17.01.2010 17:51

Собрать переменную по частям, реально?
 
Изначально переменные а1 а2 а3 равны 0. В результате некой функции должны обновляться переменные a1 a2 a3 на равные 1, в зависимости от того какое значение выбрано(переменная b(варьируется от 1го до 3х))

var a1="0"; var a2="0"; var a3="0"; var b="0";

function x(){
"a"+b.toString()=1; //<= Тут нужна помощь специалиста))
}

<img src="1.gif" onclick="b=1; x()">
<img src="2.gif" onclick="b=2; x()">
<img src="3.gif" onclick="b=3; x()">

Так не работает, не знаю как соединить букву "а" и значение и b чтобы получилось имя нужной переменной для присваивания нового значения

Gvozd 17.01.2010 18:01

для глобальных переменных
function x(){
window["a"+b]=1; //toString не нужен, так как первый операнд-строка
}

но гораздо лучше сделать массив a, и обращатся к его элементам по индексу
и b лучше в качестве параметра передавать ф-ции
var a=new Array(0,0,0);
function x(b){
a[b-1]=1;
}

<img src="1.gif" onclick="x(1)">
<img src="2.gif" onclick="x(2)">
<img src="3.gif" onclick="x(3)">

Octane 17.01.2010 18:05

<script type="text/javascript">
var variables = {
    a1: 0,
    a2: 0,
    a3: 0
};

function x(b) {
    variables["a" + b] = 1;
    alert("a" + b + " = " + variables["a" + b]);
}
</script>

<button onclick="x(1)">1</button>
<button onclick="x(2)">2</button>
<button onclick="x(3)">3</button>


-------
опоздал :)

Reflexion 17.01.2010 18:05

Спасибо за помощь, но через массив не получиться, а вот 1ый вариант работает, спасибо)


Часовой пояс GMT +3, время: 14:50.