Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Косвенная адресация в javascript
|
|||
|---|---|---|---|
|
#18+
Собственно, вопрос звучит так: - как в JS обратиться к содержимому (прочитать или изменить его) переменной, имя которой заранее неизвестно, но известно, что оно будет находиться в другой (известной) переменной? Например, в некоем цикле от 1 до 9 программно формируются имена переменных: Код: plaintext Можно ли это сделать средствами JS? Подскажите, пожалуйста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2016, 10:20 |
|
||
|
Косвенная адресация в javascript
|
|||
|---|---|---|---|
|
#18+
не хочу давать плохих советов, потому спрошу, зачем переменные? еще вопрос, а к чему еще можно обратится кроме как к содержимому переменной? лучше описать задачу, чем выдумывать странное решение задачи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2016, 10:26 |
|
||
|
Косвенная адресация в javascript
|
|||
|---|---|---|---|
|
#18+
я не вчитывался что вам надо, но может типа такого Код: javascript 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2016, 10:32 |
|
||
|
Косвенная адресация в javascript
|
|||
|---|---|---|---|
|
#18+
neznajka Код: plaintext мне кажется, всем этим "переменным" место в единственном массиве ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2016, 10:54 |
|
||
|
Косвенная адресация в javascript
|
|||
|---|---|---|---|
|
#18+
Владимир2012, eval это тот самый вредный совет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2016, 11:03 |
|
||
|
Косвенная адресация в javascript
|
|||
|---|---|---|---|
|
#18+
Var79eval это тот самый вредный советНе безопасно ... Совет не вредный. У автора топик что имеется сайт который хакеры мечтают сломать? Скорее всего пока нет ... А когда подучится, то во всем сам разберется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2016, 11:16 |
|
||
|
Косвенная адресация в javascript
|
|||
|---|---|---|---|
|
#18+
Var79, Может и странное - но каждый решает проблемы, основываясь на каком-либо уже известном ему фундаменте. Мне известен именно такой, а фундамент JS я пока только изучаю, потому и спрашиваю здесь. Возможно, в JS есть и лучший способ. Конкретнее - примерно так. В цикле формируются имена нумерованных переменных (возможно лучше - ассоциативный массив), в которых будет накапливаться HTML-код, формируемый в том же цикле. Сам код представляет из себя самодостаточные элементы WEB-страницы. В дальнейшем после цикла - в зависимости от внешних условий все (или некоторые) эти элементы будут выводиться посетителю на странице в том или ином порядке. Ещё более конкретно - пытаюсь сформировать сейчас на тестовой площадке. Как оформлю более-менее вразумительно - выложу ссылку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2016, 11:21 |
|
||
|
Косвенная адресация в javascript
|
|||
|---|---|---|---|
|
#18+
neznajkaНапример, в некоем цикле от 1 до 9 программно формируются имена переменных: Код: plaintext Для решения таких задач есть массивы... neznajka- как в JS обратиться к содержимому (прочитать или изменить его) переменной, имя которой заранее неизвестно, но известно, что оно будет находиться в другой (известной) переменной? Для всего остального есть объекты. Там под разными "ключами" можно хранить разное содержимое. И обращение к ключам возможно по имени Код: javascript 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2016, 11:22 |
|
||
|
Косвенная адресация в javascript
|
|||
|---|---|---|---|
|
#18+
krvsa, СПАСИБО! Блин, я как-то об объектах и не подумал... Кажется, это мне подойдёт :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2016, 11:28 |
|
||
|
Косвенная адресация в javascript
|
|||
|---|---|---|---|
|
#18+
neznajka, не нужны никакие нумерованные переменные, я же приводил код Код: javascript 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2016, 11:31 |
|
||
|
Косвенная адресация в javascript
|
|||
|---|---|---|---|
|
#18+
neznajka, у объектов нет .join() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2016, 11:33 |
|
||
|
Косвенная адресация в javascript
|
|||
|---|---|---|---|
|
#18+
Не всегда можно использовать массивы. Например, из page.evaluate нельзя вернуть массив. В таком случае используют JSON-сериализацию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2016, 12:14 |
|
||
|
Косвенная адресация в javascript
|
|||
|---|---|---|---|
|
#18+
To all: М-да... Я тут подумал более тщательно - а может мне и вправду не стОит именно такой "огород" городить? Может, всё решается более просто... Короче, задумка возникла следующая. На странице имеется 2 древовидных раскрывающихся списка - раскрытие и оформление работают нормально и не имеют отношения к сути вопроса, поэтому привожу лишь html-код в "голом виде". Если скопировать данный код в полнооконный редактор, то можно увидеть, что он очень даже регулярный. Т.е. - этот код запросто можно сформировать в цикле (т.к. все цифровые значения этого дерева тоже вычисляются несложной формулой, которую легко привязать к шагу цикла). Но есть 2 существенных момента: 1) код деревьев хоть и несложен, но достаточно объёмен, особенно - 2-е дерево (оно длиннее, но структурно - такое же, и потому я его не привожу); 2) необходимость показа 1-го или 2-го дерева на странице - появляется далеко не всегда и зависит от действий пользователя (захочет ли он изменить предложенное по-умолчанию, или захочет ли он ввести нужное ему значение вручную, или же предпочтёт выбрать стандартное значение из списка); Вот и возникла идея - не гонять с сервера такой нечасто требуемый но легко формируемый html-код, а формировать его на стороне клиента только в случае необходимости. Вот и подыскиваю способ сделать это "поизящнее" :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2016, 12:53 |
|
||
|
Косвенная адресация в javascript
|
|||
|---|---|---|---|
|
#18+
neznajka, можно пригнать масимальный код только обин раз и прятать не нужное через display=none присваивая это определённым классам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2016, 13:20 |
|
||
|
Косвенная адресация в javascript
|
|||
|---|---|---|---|
|
#18+
neznajka, Используйте шаблоны, например {{handlebars}} . Описываете как будет строится дерево по типовой структуре, в момент когда дерево нужно скармливаете шаблону данные, он генерит html, который внедряете в страницу. Ханделбарсы рекомендую именно потому что решение проверено, используется в некоторых фреймворках и отучает говнокодить в шаблоне, т.е. сразу привыкаете к правильной философии. При наличии сборщика шаблоны могут быть сразу перекомпилированы в js файл. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2016, 13:47 |
|
||
|
Косвенная адресация в javascript
|
|||
|---|---|---|---|
|
#18+
To вадя: Я до сих пор так и делал. Но - хочу развиваться дальше :) To mage.lan: Спасибо! Я про такие компилируемые шаблоны не знал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2016, 14:06 |
|
||
|
Косвенная адресация в javascript
|
|||
|---|---|---|---|
|
#18+
neznajkakrvsa, СПАСИБО! Блин, я как-то об объектах и не подумал... Забавно :) Объекты в JavaScript сочетают в себе два важных функционала. Первый – это ассоциативный массив: структура, пригодная для хранения любых данных... https://learn.javascript.ru/object ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2016, 14:20 |
|
||
|
Косвенная адресация в javascript
|
|||
|---|---|---|---|
|
#18+
https://learn.javascript.ru/templates https://learn.javascript.ru/template-lodash https://learn.javascript.ru/template-tag ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2016, 14:24 |
|
||
|
Косвенная адресация в javascript
|
|||
|---|---|---|---|
|
#18+
Спасибо, skyANA, - только не так быстро и обильно, пожалуйста: не успеваю переваривать :) Шутка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2016, 15:05 |
|
||
|
Косвенная адресация в javascript
|
|||
|---|---|---|---|
|
#18+
авторЯ до сих пор так и делал. Но - хочу развиваться дальше :) если только для развития, а так для нормальной работы это павильное решение. всё остальное от лукавого. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2016, 16:00 |
|
||
|
Косвенная адресация в javascript
|
|||
|---|---|---|---|
|
#18+
вадяавторЯ до сих пор так и делал. Но - хочу развиваться дальше :) если только для развития, а так для нормальной работы это павильное решение. всё остальное от лукавого. угу. Давай опять на 20 страниц. Первый п.п. флейма выполнен. Фраза ни о чём произнесена. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2016, 16:20 |
|
||
|
Косвенная адресация в javascript
|
|||
|---|---|---|---|
|
#18+
вадяPetro123, как по-ть ты всегда найдёшь повод, а на практический вопрос ответь 19967295 вроде ты выше пытался про архитектуру и шаблонизацию что то сказать). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2016, 17:43 |
|
||
|
Косвенная адресация в javascript
|
|||
|---|---|---|---|
|
#18+
skyANA, Спасибо ещё раз за ссылку про объекты. Но возник связанный с этим вопрос. С помощью объекта, как там показано, нормально решается и интересовавшая меня вчера косвенная адресация, и некоторые вопросы многомерных массивов. В общем, вчера заигрался с объектами, а теперь - не получается работать с 2-мерным массивом без применения объектов :( В частности - вот тестовая функция: Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. Я пробовал и вот так объявлять: var arr = new Array(10); - всё равно ругается на 2-мерные индексы при попытке присвоить значение. В Интернетовских примерах - описывается работа с многомерными массивами, созданными из одномерных (заранее заполненных). А если заранее неизвестно ни количество одномерных массивов, ни количество элементов в каждом из них - то можно ли как-либо воспользоваться чисто "массивными" методами? Или же всё-таки лучше воспользоваться объектом со свойствами? В моём случае известно, что количество одномерных массивов в 2-мерном не превысит 10, а количество элементов в каждом из них - не превысит 20. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2016, 13:51 |
|
||
|
Косвенная адресация в javascript
|
|||
|---|---|---|---|
|
#18+
О, нашёл ! Оказывается:В JavaScript, если мы хотим создать многомерный массив нужно каждый раз явно указывать что данный элемент массива в свою очередь тоже является массивом. М-дя-а... Век живи - век учись! :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2016, 13:57 |
|
||
|
Косвенная адресация в javascript
|
|||
|---|---|---|---|
|
#18+
JS не самый логичный язык для обучения ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2016, 14:55 |
|
||
|
Косвенная адресация в javascript
|
|||
|---|---|---|---|
|
#18+
neznajkaО, нашёл ! Оказывается:В JavaScript, если мы хотим создать многомерный массив нужно каждый раз явно указывать что данный элемент массива в свою очередь тоже является массивом. М-дя-а... Век живи - век учись! :) такое встречается далеко не только в javascript ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2016, 15:28 |
|
||
|
Косвенная адресация в javascript
|
|||
|---|---|---|---|
|
#18+
(Сорри, небольшой офф-топ, но по сути:) Var79JS не самый логичный язык для обучения Убедился в этом давно, т.к. есть с чем сравнивать: достаточно "плотно" кодил в TP,VB,FP/VFP - там синтаксис объявления тождественен синтаксису вызова и при этом настолько унифицирован, что, ухватив общие принципы построения, далее во многих случаях можно уже просто догадаться, как правильно пишется та или иная команда или вызывается функция. Но это - во многом зависит ещё и от индивидуального способа мышления программера: например, я знаю некоторых очень способных коллег, преуспевших в других средах программирования (где сам чёрт ногу сломит, ИМХО), и при этом - нецензурно ругающихся на мой favorite-ФоксПро :) Ну, не попали они с ним в "единое русло", и вс ё тут!.. :) Изопропилтакое встречается далеко не только в javascript Значит, мне ещё повезло, что я столкнулся лишь с одним таким языком программирования :) А вообще - это я всё пишу не в порядке критики, но в порядке ответа на реплики. ИМХО, сравнивать и критиковать языки программирования - дело глупое и неблагодарное: каждый из них имеет свою конкретную направленность и "заточенность". И если какой-то конкретный языковой момент не поддаётся осмыслению и логике программиста, то это - проблема программиста, а не языка. Именно поэтому, как ни трудно мне даётся понимание синтаксиса JS - тем интереснее распутывать этот "детектив" и одерживать свои "победы". Пусть и маленькие пока :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2016, 10:10 |
|
||
|
Косвенная адресация в javascript
|
|||
|---|---|---|---|
|
#18+
neznajkaсравнивать и критиковать языки программирования - дело глупое и неблагодарное сравнивать то как раз дело хорошее neznajkaИменно поэтому, как ни трудно мне даётся понимание синтаксиса JS с синтаксисом у javascript всё хорошо(обычный C-подобный), трудности могут быть с семантикой ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2016, 13:49 |
|
||
|
Косвенная адресация в javascript
|
|||
|---|---|---|---|
|
#18+
Изопропил, это уже детали. С расстояния "НЕлингвиста" синтаксис и семантика почти сливаются в одну точку. Хорошо ещё, что хоть от акробатики отличаются :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2016, 14:29 |
|
||
|
Косвенная адресация в javascript
|
|||
|---|---|---|---|
|
#18+
neznajkaИменно поэтому, как ни трудно мне даётся понимание синтаксиса JS - тем интереснее распутывать этот "детектив" и одерживать свои "победы". Пусть и маленькие пока :) Увы никакого детектива в JS нет. Не в обиду, у большинства новичков нет желания почитать стандарт на ECMAScript. У JavaScript есть 2 отличия от "привычных" ЯП: 1. JavaScript - функциональный язык (поэтому все попытки навесить на него ООП попахивают извращением) 2. JavaScript имеет динамическую типизацию. Переменные "условно" нетипизированы, стандарт как раз описывает как, что куда будет приводится в случае если... Ваш "налет" на попытку использовать несуществующую переменную четко регламентирован. Если первое свойство языка можно только понять и простить, то второе выучивается 1 раз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2016, 14:30 |
|
||
|
Косвенная адресация в javascript
|
|||
|---|---|---|---|
|
#18+
Да, кстати - именно в этом и есть загвоздка для меня лично: для меня "C-подобный" - далеко не "обычный" :) Тут уже, как я писал выше - играет роль стиль мышления. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2016, 14:31 |
|
||
|
Косвенная адресация в javascript
|
|||
|---|---|---|---|
|
#18+
mage.lan, как раз перечисленные Вами свойства JS - вполне понятны и не вызывают трудностей. Трудности постижения JS для меня лично заключаются в некоторых других его чертах, но к данной теме это отношения не имеет, и потому не хочется их тут обсуждать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2016, 14:34 |
|
||
|
Косвенная адресация в javascript
|
|||
|---|---|---|---|
|
#18+
neznajka, ну и зря не хотите обсуждать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2016, 14:51 |
|
||
|
Косвенная адресация в javascript
|
|||
|---|---|---|---|
|
#18+
mage.lan, я не то, чтобы не хочу, просто: 1) это не соответствует теме топика и терпение модератора не безгранично :) 2) обсуждай не обсуждай - это ничего не изменит: ни один разработчик языка не станет подстраиваться под нужды и капризы каждого новичка. Справедливости ради стОит заметить, что такое обсуждение иногда может и принести определённую пользу: иногда при таких обсуждениях семантических особенностей языка более продвинутые знатоки могут приводить нестандартные житейские аналогии, позволяющие новичку быстрее понять трудные или неочевидные моменты. Однако для такого обсуждения, наверное, имеются другие ветки. Я, кажется, видел такие тут на форуме. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2016, 15:03 |
|
||
|
|

start [/forum/topic.php?all=1&fid=22&tid=1444857]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
77ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
69ms |
get tp. blocked users: |
1ms |
| others: | 12ms |
| total: | 205ms |

| 0 / 0 |
