#javascript #arrays
#javascript #массивы
Вопрос:
Это звучит довольно просто, но я не могу использовать «динамическую» переменную для ссылки на массив. Скажем, я хотел вытащить «Brent_Chart_1», чтобы найти его в массиве, я бы сделал что-то вроде этого:
data[i].Brent_Chart_1
Предположим, что я хочу перебрать несколько категорий, а также хотел вытащить «WTI_Chart_1». Я бы хотел сделать что-то вроде этого:
$comm_array = array("Brent","WTI");
for(var comm; comm = comm_array.pop();){
...
data[i].eval(comm "_Chart_1")
...
}
Однако это, похоже, не работает. Как я должен создавать эту ссылку «динамически»?
Редактировать:
Вот дополнительный контекст по этому вопросу:
if (data[i].ID == 39) {
console.log(comm);
$("#" comm "_Chart_1").highcharts('StockChart', jQuery.parseJSON(data[i][comm '_Chart_1']));
} else {
console.log(comm);
$("#" comm "_Chart_1").highcharts(jQuery.parseJSON(data[i][comm "_Chart_1"]));
}
comm 1
}
Комментарии:
1. Не используйте eval без необходимости!
2. Вы могли бы использовать цикл while вместо цикла for в этом экземпляре, например
while(comm = comm_array.pop())
Ответ №1:
Используйте обозначение в скобках следующим образом:
data[i][comm "_Chart_1"]
Ответ №2:
Я думаю data[i][comm "_Chart_1"]
, будет работать
Комментарии:
1. data[i][«Brent_Chart_1»] работает, но не data[i][comm «_Chart_1»]
2. Это правильный канон, и он сначала дал мне WTI. Журнал вернул переменные, как и ожидалось … а именно Brent и WTI
3. Массив построен правильно, так как data[i][«Brent_Chart_1»] работает… но не data[i][comm «Brent_Chart_1»] . Мы также установили, что comm в порядке, поскольку он отображается нормально в журнале консоли
4. ТАКЖЕ: я замечаю, что в журнале ошибок я получаю следующее: «Неперехваченная ошибка синтаксиса: неожиданный конец ввода»
5. канон, это была опечатка, я имел в виду [comm «_Chart_1»] . Я думаю, проблема в том, что код не считает comm sring . Это потому, что он был извлечен из массива?