PDA

Просмотр полной версии : имя обьекта из нескольких переменных


vanguish
04.11.2007, 15:22
Здравствуйте побратимы! Нужна помощь в составлении имени обекта из нескольких переменных.
есть такая функция, создающая масивы из хмл дерева:
criate_mane_item_item_arr_function = function (k) {
for (var i = 0; i<total_mane_1_item; i++) {
_root['mane_'+k+'_item_'+i+'_arr'] =mane_item_arr[i].childNodes;
}
};

и возникает вопрос! как во вторую часть равенства вставить переменную "К" , чтоб работало выражение mane_+К+_item_arr[i].childNodes;?

iNils
04.11.2007, 16:07
Для оформления своего кода, надо использовать теги .
Я что то не понял структуры xml, покажите пример.

vanguish
04.11.2007, 17:34
Извените за мой немецкий, если я неудачно обьяснил, но у меня вопрос не по структуре хмл , а по составлению имени какого-нить обьекта из нескольких переменных. В моём случае надо вставит переменную "К" в строку, а точнее в имя масива!
таким образом, как написать эту строку чтоб она была правельной?
name+K+_arrey[i].childNodes;

где поставить кавычки и квадратные скобки? "К" - это переменная

iNils
04.11.2007, 17:38
Так это у вас массив. В левой части есть хороший пример
_root['mane_'+k+'_item_'+i+'_arr'], для правой части нужно использовать его аналогию, только вместо _root писать this, при успловии, что этот массив у вас в этой же области видимости.

vanguish
04.11.2007, 18:28
Левую часть я прекрасно понимаю, сам пишу код, но мне надо правая часть именно такой формы: name+K+_arrey[i].childNodes, чтоб "К" была посредине имени мвссива. Как написать эту часть правельно?
варианты типа : "name"+K+"_arrey"[i].childNodes или ["name"+K+"_arrey"[i]].childNodes ['name'+K+'_arrey['+i+']'].childNodes не работают, так как правельно? Напишите конкретный код, тут всего одна строчка............ плз

iNils
04.11.2007, 19:12
Перечитайте мой пост (№4) еще раз, там все написано.

vanguish
04.11.2007, 19:41
Ты не поймёшь никак, надо именно такой формы как я прошу, именно она у меня не получается : name+K+_arrey[i].childNodes , видишь там в конце стоит элимент масива [i] ! его нужно оставить, без него я могу хоть сто переменных влипить в имя , а вот с этим элиментом не выходит. а в четвёртом посте без этого элимента!!!

если можешь, напиши правельный вариант, код напиши.!!!

MOHCTEP
04.11.2007, 19:58
this["name"+K+"_arrey["+i+"]"].childNodes

iNils
04.11.2007, 20:06
Предсловие: если вы думаете, что я вам просто дам голый ответ и вы радостный отсюда уйдете и больше не появитесь, то ошибаетесь. Моя цель заставить вас напрячь мозги и найти ответ самому с помощью моих подсказок... ну или вам придется ждать доброго самаритянина :)
Доступ к элементу массива происходит по схеме:

имя_массива[индекс_в_массиве].

Вам нужно сформировать ИМЯ, вы запихиваете его в [], как сделали это в первом посте, я вам подсказал, что _root можно заменить на this и при каких условиях.

А теперь подумайте и скажите, если вы формуруете внутри [] имя массива, то какого лешего вы суете внутрь еще доступ к индексу массива, делая его частью имени? То есть имя_массива = this[ля-ля-ля].


PS. MOHCTEP, вы тоже ерунду написали, читайте почему.

wvxvw
04.11.2007, 20:38
Аватар как нельзя лучше объясняет сущность вопроса :D
Ну вот как ты это слева от "=" написал, так же и справа от "=" напиши. :D

MOHCTEP
04.11.2007, 20:45
iNils Вы правы. Сорри
this["name"+K+"_arrey"][i].childNodes
Так надо?

vanguish
05.11.2007, 14:22
МОНСТЕР - ты наверно тот добрый самаритянин о котором говорил iNils,
твой код сто пудов правельный , то что мне и надо, но жаль я сам до него доехал,потратив времени, но все равно спасибо!
И iNilsу спасиба, разве что совет: Последняя твоя подсказка прям в цель, но надо сразу было её кидать, а не вымучивать!