использование имени массива в JS как переменной

Статус
Закрыто для дальнейших ответов.

nataly

Member
Регистрация
03.04.2010
Сообщения
22
Добрый день! Есть несколько массивов с именами типа buoys1, buoys2,....
В скрипте вычисляю длину R-го массива:
objSel.options.length="'buoys'+R".length;
прекрасно работает и дает правильное значение длины.
Теперь надо поместить значение элемента массива в текстовую часть SELECTа:
for (i = 0; i < "'buoys'+R".length; i++) { objSel.options.text ='buoys'+R+'['+i+']'; }
В результате строки SELECTа заполняются не значениеями, а именами элементов buoys1[0], buoys1[1], buoys1[3],...
Пожалуйста подскажите, как присвоить полю ...text именно значение элемента массива?
Заранее спасибо за ответ.
 

brevis

Well-Known Member
Регистрация
10.08.2010
Сообщения
452
nataly сказал(а):
Добрый день! Есть несколько массивов с именами типа buoys1, buoys2,....
В скрипте вычисляю длину R-го массива:
objSel.options.length="'buoys'+R".length;
прекрасно работает и дает правильное значение длины.
Всегда 9 возвращает?
P.S. http://jsfiddle.net/Xz3KR/
 

nataly

Member
Регистрация
03.04.2010
Сообщения
22
Число массивов переменное и длина каждого массива тоже разная
Я посмотрела Ваш код, спасибо! Но у меня все сложнее - эти массивы формируются вначале и передаются из PHP скрипта, (существует несколько SELECTов) а потом уже при oncllick мне надо вывести в существующий SELECT новые значения из нового массива. Но все равно спасибо - попробую через функцию выкрутиться, которую Вы написали
 

nataly

Member
Регистрация
03.04.2010
Сообщения
22
Еще раз хочу сказать спасибо за подсказку очень подробную и даже с некоторой "перспективой" - все заработало. И тогда еще вопрос - из PHP массивы передаю функцией json_encode (функция implode почему-то "портит" данные). В результате работы этой функции в JS я имею массив одной строкой с разделителями. Как теперь эту строку опять разобрать на элементы массива?
 

brevis

Well-Known Member
Регистрация
10.08.2010
Сообщения
452
Вот такой кусок
Код:
$buoys1 = array('elem1', 'elem2', 'elem3', 'elem4', 'elem5');echo 'var buoys1 = ' . json_encode($buoys1) . ';';
даёт такой результат
Код:
var buoys1 = ["elem1","elem2","elem3","elem4","elem5"];
Это честный javascript-массив. Обратиться к эго элементам можно buoys1[0], buoys1[1] и тд.
 

nataly

Member
Регистрация
03.04.2010
Сообщения
22
Еще раз большое спасибо! Все работает! Я была на правильном пути, но после Вашего описания увидела у себя ошибку.
 
Статус
Закрыто для дальнейших ответов.
Верх Низ