2016-02-26 2 views
0

Из моего элемента DOM я разрешаю пользователю выбирать состояние.Как передать переменные как имя массива в функцию в Javascript

В моем коде я хожу:

var State = $("select[name=state1]").val(); 

Так что если AZ был выбран, Ouput будет State == "AZ"

Тогда у меня есть массивы для каждого состояния так, например:

var AZ =[[1],[2]]; 

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

var ABC = 25 * State[0][1]; 

Однако переменная state не является массивом. Я хочу state заменен избраннику, например, она может быть AZ так что я на самом деле хочу, чтобы вычислить ...

var ABC = 25 * AZ[0][1]; 

Любые идеи о том, как я могу передать значение State в последнем уравнении автоматически?

ответ

1

Я предлагаю назначить ваше состояние значения немного по-другому:

var states = { 
    AZ: [[1],[2]], 
    //and so on 
}; 

Затем вы можете сделать

var ABC = 25 * states[State][0][1]; 
+0

Я не понимаю, что 'AZ: [[1] [2]] 'делает.State возвращает «AZ» из DOM, а затем я хочу вызвать элемент 'AZ [1] [2]', набрав 'State [1] [2]' – Badrush

+0

Я забыл запятую. Отредактировал ответ, но это та же идея, что и @ artm's. Я просто медленнее печатаю через приложение для обмена стеками. lol –

+1

В основном, нижнее выражение расширяет до 25 * 2-й элемент массива, связанный с атрибутом «AZ» 'states' (25 * 2) –

1

Изменение состояния в качестве объекта содержат государственные массивы:

var state = { AZ : [[1],[2]], OS : [[3], [4]] }; 
var abc = 25 * state["AZ"][0] 
+1

Что такое ОС? и что делает ':' здесь? – Badrush

+1

Я сделаю предположение и скажу, что это произвольная точка аббревиатуры состояния, используемая как пример ... И ':' присваивает массив указанной точке данных объекта. –

+1

@Badrush Как и jTitus, «OS» может быть чем угодно, просто примером другого состояния и: как вы присваиваете значения свойствам объекта. – artm

Смежные вопросы