Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Работа со строками (https://javascript.ru/forum/misc/7274-rabota-so-strokami.html)

ksa 28.05.2013 11:58

Цитата:

Сообщение от HJ90
можно ли сконструировать переменную из строки и числа
чтобы получить доступ к переменной a1?

Как вариант...

<!DOCTYPE html>
<html>
<head>
<!--
<script src="http://code.jquery.com/jquery-latest.js"></script>
<link rel="stylesheet" type="text/css" href="tmp.css" />
-->
<style type="text/css">
</style>
<script type="text/javascript">
a1 = 4;
a2 = 9;
result = window["a"+"1"]
alert(result)
</script>
</head>
<body>
</body>
</html>

rgl 28.05.2013 12:05

Еще вариант:
a1 = 4
a2 = 9
result = eval("a"+"1")
alert(result) // нужно 4

ksa 28.05.2013 13:19

rgl, мне за примеры с eval() постоянно минусуют карму... :D

Aetae 28.05.2013 14:00

И првильно делают.)

rgl 28.05.2013 14:47

Цитата:

Сообщение от ksa (Сообщение 253189)
rgl, мне за примеры с eval() постоянно минусуют карму... :D

Фу как некрасиво. Сказать что думаешь можно, но минус зачем??? Тем более, это работает, а твой способ - нет (точнее, не всегда). Во-первых (хоть на этом форуме с этим и будут спорить но это так) не везде есть windows, а во-вторых, переменные могут быть не глобальными.
А про eval, разработчики языка, стандарта, такие глупцы, сделали eval не понимая? eval - да, не надо использовать там, где можно, но если без никак, то ничего другого не остается.

<!DOCTYPE html>
<html>
<head>
<!--
<script src="http://code.jquery.com/jquery-latest.js"></script>
<link rel="stylesheet" type="text/css" href="tmp.css" />
-->
<style type="text/css">
</style>
<script type="text/javascript">
function f() {
  var a1 = 4;
  var a2 = 9;
  var result = window["a"+"1"]
  alert(result);
  result = eval( "a"+"1" );
  alert(result);
}

f();
</script>
</head>
<body>
</body>
</html>

ksa 28.05.2013 15:14

Цитата:

Сообщение от rgl
но минус зачем?

Это уже к авторам тех минусов... :D

Aetae 28.05.2013 15:18

Кекеке.:haha:

HJ90 28.05.2013 17:10

Большое спасибо всем за помощь!
через eval то что надо! :)

HJ90 29.05.2013 00:51

А есть возможность обратно записать значение в эту конструкцию, или как-то по другому?
Может я не тем путем иду...

Я передаю 2 аргументы (value и id) с 20-ти инпутов в функцию JS.
Хочу чтобы эти данные обрабатывались универсальным кодом, а не копипастом для каждого инпута.
Поэтому решил подставлять в код переменные аргументов, в зависимости какой инпут передает значение

Если копипастом будет так:
view.hlookat2.value = view.hlookat.value

То есть у меня копируется значение с html5-ползунка в инпут text

UPD: разобрался...
извините, я только начал учить JS.

x = "hlookat_" + "2"
document.getElementById(x).value = hlookat.value


Часовой пояс GMT +3, время: 12:30.