powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Косвенная адресация в javascript
38 сообщений из 38, показаны все 2 страниц
Косвенная адресация в javascript
    #39360247
Фотография neznajka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Собственно, вопрос звучит так:
- как в JS обратиться к содержимому (прочитать или изменить его) переменной, имя которой заранее неизвестно, но известно, что оно будет находиться в другой (известной) переменной?
Например, в некоем цикле от 1 до 9 программно формируются имена переменных:
Код: plaintext
 stroka1,...,stroka9; 
и сразу после формирования каждого имени - в переменную с этим именем следует дописывать некую накапливающуюся строку. Затем, после этого цикла в дальнейшем тексте программы нужно будет ещё пару раз обратиться к содержимому каждой такой переменной. Наверное, для такого обращения - лучше будет загнать созданные вышеупомянутые имена переменных в промежуточный массив.
Можно ли это сделать средствами JS? Подскажите, пожалуйста.
...
Рейтинг: 0 / 0
Косвенная адресация в javascript
    #39360254
Var79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не хочу давать плохих советов, потому спрошу, зачем переменные?
еще вопрос, а к чему еще можно обратится кроме как к содержимому переменной?
лучше описать задачу, чем выдумывать странное решение задачи
...
Рейтинг: 0 / 0
Косвенная адресация в javascript
    #39360259
Var79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я не вчитывался что вам надо, но может типа такого
Код: javascript
1.
2.
3.
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.push("Kiwi");
var energy = fruits.join(" and ");
...
Рейтинг: 0 / 0
Косвенная адресация в javascript
    #39360280
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Косвенная адресация в javascript
    #39360288
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
neznajka
Код: plaintext
stroka1,...,stroka9;

мне кажется, всем этим "переменным" место в единственном массиве
...
Рейтинг: 0 / 0
Косвенная адресация в javascript
    #39360299
Var79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012,

eval это тот самый вредный совет
...
Рейтинг: 0 / 0
Косвенная адресация в javascript
    #39360323
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Var79eval это тот самый вредный советНе безопасно ...
Совет не вредный.
У автора топик что имеется сайт который хакеры мечтают сломать?
Скорее всего пока нет ...
А когда подучится, то во всем сам разберется.
...
Рейтинг: 0 / 0
Косвенная адресация в javascript
    #39360327
Фотография neznajka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Var79,
Может и странное - но каждый решает проблемы, основываясь на каком-либо уже известном ему фундаменте. Мне известен именно такой, а фундамент JS я пока только изучаю, потому и спрашиваю здесь. Возможно, в JS есть и лучший способ.
Конкретнее - примерно так. В цикле формируются имена нумерованных переменных (возможно лучше - ассоциативный массив), в которых будет накапливаться HTML-код, формируемый в том же цикле. Сам код представляет из себя самодостаточные элементы WEB-страницы. В дальнейшем после цикла - в зависимости от внешних условий все (или некоторые) эти элементы будут выводиться посетителю на странице в том или ином порядке.
Ещё более конкретно - пытаюсь сформировать сейчас на тестовой площадке. Как оформлю более-менее вразумительно - выложу ссылку.
...
Рейтинг: 0 / 0
Косвенная адресация в javascript
    #39360329
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
neznajkaНапример, в некоем цикле от 1 до 9 программно формируются имена переменных:
Код: plaintext
 stroka1,...,stroka9; 
и сразу после формирования каждого имени - в переменную с этим именем следует дописывать некую накапливающуюся строку. Затем, после этого цикла в дальнейшем тексте программы нужно будет ещё пару раз обратиться к содержимому каждой такой переменной.
Для решения таких задач есть массивы...
neznajka- как в JS обратиться к содержимому (прочитать или изменить его) переменной, имя которой заранее неизвестно, но известно, что оно будет находиться в другой (известной) переменной?
Для всего остального есть объекты. Там под разными "ключами" можно хранить разное содержимое.
И обращение к ключам возможно по имени

Код: javascript
1.
2.
3.
4.
5.
var obj={
   test: 'Пример'
};
var key='test';
alert(obj[key]);
...
Рейтинг: 0 / 0
Косвенная адресация в javascript
    #39360336
Фотография neznajka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa, СПАСИБО!
Блин, я как-то об объектах и не подумал...
Кажется, это мне подойдёт :)
...
Рейтинг: 0 / 0
Косвенная адресация в javascript
    #39360337
Var79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
neznajka,

не нужны никакие нумерованные переменные, я же приводил код

Код: javascript
1.
2.
3.
4.
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.push("Kiwi");
var energy = fruits.join(" and "); //  или fruits.join() если без разделителя 
alert(energy);
...
Рейтинг: 0 / 0
Косвенная адресация в javascript
    #39360340
Var79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
neznajka,

у объектов нет .join()
...
Рейтинг: 0 / 0
Косвенная адресация в javascript
    #39360366
nicholaos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не всегда можно использовать массивы. Например, из page.evaluate нельзя вернуть массив. В таком случае используют JSON-сериализацию.
...
Рейтинг: 0 / 0
Косвенная адресация в javascript
    #39360402
Фотография neznajka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
To all:
М-да... Я тут подумал более тщательно - а может мне и вправду не стОит именно такой "огород" городить? Может, всё решается более просто...
Короче, задумка возникла следующая.
На странице имеется 2 древовидных раскрывающихся списка - раскрытие и оформление работают нормально и не имеют отношения к сути вопроса, поэтому привожу лишь html-код в "голом виде".
Если скопировать данный код в полнооконный редактор, то можно увидеть, что он очень даже регулярный. Т.е. - этот код запросто можно сформировать в цикле (т.к. все цифровые значения этого дерева тоже вычисляются несложной формулой, которую легко привязать к шагу цикла). Но есть 2 существенных момента:
1) код деревьев хоть и несложен, но достаточно объёмен, особенно - 2-е дерево (оно длиннее, но структурно - такое же, и потому я его не привожу);
2) необходимость показа 1-го или 2-го дерева на странице - появляется далеко не всегда и зависит от действий пользователя (захочет ли он изменить предложенное по-умолчанию, или захочет ли он ввести нужное ему значение вручную, или же предпочтёт выбрать стандартное значение из списка);
Вот и возникла идея - не гонять с сервера такой нечасто требуемый но легко формируемый html-код, а формировать его на стороне клиента только в случае необходимости.
Вот и подыскиваю способ сделать это "поизящнее" :)
...
Рейтинг: 0 / 0
Косвенная адресация в javascript
    #39360427
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
neznajka,
можно пригнать масимальный код только обин раз
и прятать не нужное через display=none
присваивая это определённым классам.
...
Рейтинг: 0 / 0
Косвенная адресация в javascript
    #39360451
mage.lan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
neznajka,

Используйте шаблоны, например {{handlebars}} .

Описываете как будет строится дерево по типовой структуре, в момент когда дерево нужно скармливаете шаблону данные, он генерит html, который внедряете в страницу.

Ханделбарсы рекомендую именно потому что решение проверено, используется в некоторых фреймворках и отучает говнокодить в шаблоне, т.е. сразу привыкаете к правильной философии. При наличии сборщика шаблоны могут быть сразу перекомпилированы в js файл.
...
Рейтинг: 0 / 0
Косвенная адресация в javascript
    #39360479
Фотография neznajka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
To вадя:
Я до сих пор так и делал. Но - хочу развиваться дальше :)

To mage.lan:
Спасибо! Я про такие компилируемые шаблоны не знал.
...
Рейтинг: 0 / 0
Косвенная адресация в javascript
    #39360486
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mage.lanИспользуйте шаблоны, например {{handlebars}} .
+1
интересная ссылка
...
Рейтинг: 0 / 0
Косвенная адресация в javascript
    #39360495
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
neznajkakrvsa, СПАСИБО!
Блин, я как-то об объектах и не подумал...
Забавно :)

Объекты в JavaScript сочетают в себе два важных функционала.

Первый – это ассоциативный массив: структура, пригодная для хранения любых данных...

https://learn.javascript.ru/object
...
Рейтинг: 0 / 0
Косвенная адресация в javascript
    #39360502
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Косвенная адресация в javascript
    #39360549
Фотография neznajka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, skyANA, - только не так быстро и обильно, пожалуйста: не успеваю переваривать :)
Шутка.
...
Рейтинг: 0 / 0
Косвенная адресация в javascript
    #39360609
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЯ до сих пор так и делал. Но - хочу развиваться дальше :)
если только для развития, а так для нормальной работы это павильное решение. всё остальное от лукавого.
...
Рейтинг: 0 / 0
Косвенная адресация в javascript
    #39360633
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяавторЯ до сих пор так и делал. Но - хочу развиваться дальше :)
если только для развития, а так для нормальной работы это павильное решение. всё остальное от лукавого.
угу. Давай опять на 20 страниц.
Первый п.п. флейма выполнен. Фраза ни о чём произнесена.
...
Рейтинг: 0 / 0
Косвенная адресация в javascript
    #39360642
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,
как по-ть ты всегда найдёшь повод,
а на практический вопрос ответь 19967295
...
Рейтинг: 0 / 0
Косвенная адресация в javascript
    #39360736
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяPetro123,
как по-ть ты всегда найдёшь повод,
а на практический вопрос ответь 19967295
вроде ты выше пытался про архитектуру и шаблонизацию что то сказать).
...
Рейтинг: 0 / 0
Косвенная адресация в javascript
    #39361197
Фотография neznajka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,
Спасибо ещё раз за ссылку про объекты.
Но возник связанный с этим вопрос.
С помощью объекта, как там показано, нормально решается и интересовавшая меня вчера косвенная адресация, и некоторые вопросы многомерных массивов.
В общем, вчера заигрался с объектами, а теперь - не получается работать с 2-мерным массивом без применения объектов :(
В частности - вот тестовая функция:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
function proverka()
	{var arr=[];
	 for (var i = 0; i < 10; i++)
		{for (var j = 0; j < 10; j++)
			{arr[i][j]=i.toString+'_'+j.toString;}// вот здесь ругается на индексы :(
		}
		console.log(arr);
	}



Я пробовал и вот так объявлять: var arr = new Array(10); - всё равно ругается на 2-мерные индексы при попытке присвоить значение.
В Интернетовских примерах - описывается работа с многомерными массивами, созданными из одномерных (заранее заполненных). А если заранее неизвестно ни количество одномерных массивов, ни количество элементов в каждом из них - то можно ли как-либо воспользоваться чисто "массивными" методами? Или же всё-таки лучше воспользоваться объектом со свойствами? В моём случае известно, что количество одномерных массивов в 2-мерном не превысит 10, а количество элементов в каждом из них - не превысит 20.
...
Рейтинг: 0 / 0
Косвенная адресация в javascript
    #39361201
Фотография neznajka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
О, нашёл !
Оказывается:В JavaScript, если мы хотим создать многомерный массив нужно каждый раз явно указывать что данный элемент массива в свою очередь тоже является массивом.
М-дя-а... Век живи - век учись! :)
...
Рейтинг: 0 / 0
Косвенная адресация в javascript
    #39361251
Var79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JS не самый логичный язык для обучения
...
Рейтинг: 0 / 0
Косвенная адресация в javascript
    #39361288
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
neznajkaО, нашёл !
Оказывается:В JavaScript, если мы хотим создать многомерный массив нужно каждый раз явно указывать что данный элемент массива в свою очередь тоже является массивом.
М-дя-а... Век живи - век учись! :)
такое встречается далеко не только в javascript
...
Рейтинг: 0 / 0
Косвенная адресация в javascript
    #39361616
Фотография neznajka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
(Сорри, небольшой офф-топ, но по сути:)
Var79JS не самый логичный язык для обучения
Убедился в этом давно, т.к. есть с чем сравнивать: достаточно "плотно" кодил в TP,VB,FP/VFP - там синтаксис объявления тождественен синтаксису вызова и при этом настолько унифицирован, что, ухватив общие принципы построения, далее во многих случаях можно уже просто догадаться, как правильно пишется та или иная команда или вызывается функция.
Но это - во многом зависит ещё и от индивидуального способа мышления программера: например, я знаю некоторых очень способных коллег, преуспевших в других средах программирования (где сам чёрт ногу сломит, ИМХО), и при этом - нецензурно ругающихся на мой favorite-ФоксПро :) Ну, не попали они с ним в "единое русло", и вс ё тут!.. :)
Изопропилтакое встречается далеко не только в javascript
Значит, мне ещё повезло, что я столкнулся лишь с одним таким языком программирования :)
А вообще - это я всё пишу не в порядке критики, но в порядке ответа на реплики.
ИМХО, сравнивать и критиковать языки программирования - дело глупое и неблагодарное: каждый из них имеет свою конкретную направленность и "заточенность". И если какой-то конкретный языковой момент не поддаётся осмыслению и логике программиста, то это - проблема программиста, а не языка.
Именно поэтому, как ни трудно мне даётся понимание синтаксиса JS - тем интереснее распутывать этот "детектив" и одерживать свои "победы". Пусть и маленькие пока :)
...
Рейтинг: 0 / 0
Косвенная адресация в javascript
    #39361806
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
neznajkaсравнивать и критиковать языки программирования - дело глупое и неблагодарное
сравнивать то как раз дело хорошее


neznajkaИменно поэтому, как ни трудно мне даётся понимание синтаксиса JS
с синтаксисом у javascript всё хорошо(обычный C-подобный), трудности могут быть с семантикой
...
Рейтинг: 0 / 0
Косвенная адресация в javascript
    #39361834
Фотография neznajka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил, это уже детали. С расстояния "НЕлингвиста" синтаксис и семантика почти сливаются в одну точку. Хорошо ещё, что хоть от акробатики отличаются :)
...
Рейтинг: 0 / 0
Косвенная адресация в javascript
    #39361835
mage.lan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
neznajkaИменно поэтому, как ни трудно мне даётся понимание синтаксиса JS - тем интереснее распутывать этот "детектив" и одерживать свои "победы". Пусть и маленькие пока :)
Увы никакого детектива в JS нет. Не в обиду, у большинства новичков нет желания почитать стандарт на ECMAScript.

У JavaScript есть 2 отличия от "привычных" ЯП:
1. JavaScript - функциональный язык (поэтому все попытки навесить на него ООП попахивают извращением)
2. JavaScript имеет динамическую типизацию. Переменные "условно" нетипизированы, стандарт как раз описывает как, что куда будет приводится в случае если... Ваш "налет" на попытку использовать несуществующую переменную четко регламентирован.

Если первое свойство языка можно только понять и простить, то второе выучивается 1 раз.
...
Рейтинг: 0 / 0
Косвенная адресация в javascript
    #39361836
Фотография neznajka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, кстати - именно в этом и есть загвоздка для меня лично:
для меня "C-подобный" - далеко не "обычный" :)
Тут уже, как я писал выше - играет роль стиль мышления.
...
Рейтинг: 0 / 0
Косвенная адресация в javascript
    #39361843
Фотография neznajka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mage.lan, как раз перечисленные Вами свойства JS - вполне понятны и не вызывают трудностей.
Трудности постижения JS для меня лично заключаются в некоторых других его чертах, но к данной теме это отношения не имеет, и потому не хочется их тут обсуждать.
...
Рейтинг: 0 / 0
Косвенная адресация в javascript
    #39361864
mage.lan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
neznajka,

ну и зря не хотите обсуждать.
...
Рейтинг: 0 / 0
Косвенная адресация в javascript
    #39361871
Фотография neznajka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mage.lan, я не то, чтобы не хочу, просто:
1) это не соответствует теме топика и терпение модератора не безгранично :)
2) обсуждай не обсуждай - это ничего не изменит: ни один разработчик языка не станет подстраиваться под нужды и капризы каждого новичка.
Справедливости ради стОит заметить, что такое обсуждение иногда может и принести определённую пользу: иногда при таких обсуждениях семантических особенностей языка более продвинутые знатоки могут приводить нестандартные житейские аналогии, позволяющие новичку быстрее понять трудные или неочевидные моменты.
Однако для такого обсуждения, наверное, имеются другие ветки. Я, кажется, видел такие тут на форуме.
...
Рейтинг: 0 / 0
Косвенная адресация в javascript
    #39361913
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mage.lan2. JavaScript имеет динамическую типизацию
таких языков вагон и маленькая тележка.
...
Рейтинг: 0 / 0
38 сообщений из 38, показаны все 2 страниц
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Косвенная адресация в javascript
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]