Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Строка в переменную (https://javascript.ru/forum/misc/40590-stroka-v-peremennuyu.html)

ksa 12.08.2013 15:52

Цитата:

Сообщение от Mafa (Сообщение 267096)
Мой result тут:
var result = $(".activeCountri").val();


А потом надо "достучаться" до массива с именем result:
if(maxves <= 50){alert(result[0]);}

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

var o={};
o.result=[1,2,3,4,5];
test("result");
function test(Name) {
   alert(o[Name][0]);
};

danik.js 12.08.2013 16:04

Mafa, опиши контекст задачи. Уверен, можно запросто обойтись без eval притом без особых усилий.

a_l 12.08.2013 16:06

Mafa, а для чего в .activeCountri вам значение 'result[0]'? Почему бы не сократить его до '0'. Чтобы потом использовать result[i], где var i = $(".activeCountri").val();

Mafa 12.08.2013 16:45

Неее, ребята. Там куча массивов, и в зависимости от выбранного селекта, нужно взять значение из определённого массива.

var astana = [20000, 27500, 37500, 48000, 60000, 80000, 100000, 115000, 115]
var karaganda = [31000, 38500, 51500, 63500, 83500, 113000, 139000, 144000, 144]
var almata = [20000, 27500, 37500, 50000, 65000, 83000, 105000, 125000, 125]
var taraz = [25000, 35000, 47500, 67000, 85000, 106000, 134000, 165000, 160]
var schimkent = [25000, 35000, 52500, 69000, 87000, 108000, 137000, 170000, 165]
var kyzylorda = [27000, 37000, 51500, 71000, 100000, 128000, 165000, 200000, 180]
var kokschetau = [33000, 35000, 51500, 66500, 88000, 112000, 138000, 143000, 155]
var petropavl = [34000, 39000, 52000, 68000, 98000, 122000, 146000, 150000, 161]
var kostanay = [34000, 39000, 52000, 58000, 75000, 115000, 140000, 145000, 155]
var pavlodar = [34000, 39000, 52500, 68000, 90500, 115000, 140000, 145000, 160]
var semey = [35000, 38500, 54500, 71000, 95500, 120000, 138000, 143000, 165]
var uskaman = [36000, 38500, 55000, 72500, 97800, 120000, 145000, 150000, 165]


А в зависимости от введённого числа - получить доступ к определённому значению этого определённого массива)))))))
var count = eval($(".activeCountri").val());
if(maxves <= 50){var resv = count[0]}
else if(100 >= maxves && 51 <=  maxves){var resv = count[1]}
else if(200 >= maxves && 101<= maxves){var resv = count[2]}
else if(300 >= maxves && 201<= maxves){var resv = count[3]}
else if(500 >= maxves && 301<= maxves){var resv = count[4]}
else if(600 >= maxves && 501<= maxves){var resv = count[5]}
else if(800 >= maxves && 601<= maxves){var resv = count[6]}
else if(1000 >= maxves && 801<= maxves){var resv = count[7]}
else if(2000 >= maxves && 1001<= maxves){var resv = maxves * count[8]}
else{var resv = "Цена договорная!"}


Как-то так...

danik.js 12.08.2013 16:55

Пиши так:
var cities = {
    astana: [20000, 27500, 37500, 48000, 60000, 80000, 100000, 115000, 115],
    karaganda: [31000, 38500, 51500, 63500, 83500, 113000, 139000, 144000, 144]
};


Так ты сможешь обратиться к значению через ключ имея строку (о чем было уже сказано выше):

cities['astana']

Яростный Меч 12.08.2013 20:00

Цитата:

Сообщение от Mafa
Там куча массивов, и в зависимости от выбранного селекта, нужно взять значение из определённого массива.

если это глобальные объекты, то через window:

window['astana']


Но, понятное дело, правильнее их собрать в один, например, cities, как уже посоветовали.

Deff 12.08.2013 20:09

var result = '$(".activeCountri").val()';
ток когда нужно if(...)eval(result)

Хотя кошернее:
var result[1] = function(){return $(".activeCountri1").val()}
var result[2] = function(){return $(".activeCountri2").val()}

var a1=result[1]();
var a2=result[2]();

Mafa 13.08.2013 07:21

danik.js, ну наконец-то до меня дошло) Спасибо, работает)))
Deff, $(".activeCountri") - это селекторы со списком городов, в зависимости от выбора пользователя, скрипт обращается к определённому массиву) Я не поняла твоего варианта)

Все огромное спасибо, я пока учусь и, чувствую, буду частым гостем тут) Потому как зачастую, в сети сложно найти ответ ввиду того, что не имея опыта сложно сформулировать запрос) А тут человеческим языком спросил - по-человечески ответили) Супер)

danik.js 13.08.2013 07:35

Кстати ключи (на самом деле и имена переменных) могут быть на кириллице:
var cities = {
    'астана': [],
    'караганда': [],
};


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