var products = {
'1': { 'var1': 100, 'var2': 200, 'price': 2000 },
'2': { 'var1': 200, 'var2': 300, 'price': 4000 },
'3': { 'var1': 300, 'var2': 400, 'price': 6000 }
};
alert(products['1']['price']); // выводит 2000 все верно.
Как по такой конструкции найти поле price, используя var1 и var2.
т.е. я передам в функцию var1=100 и var2=200 и надо получить 2000.
Спустя 1 час, 7 минут, 2 секунды (20.02.2012 - 14:33) killer8080 написал(а):
maximka787
а с чего ты взял, что это массив?
а с чего ты взял, что это массив?
Спустя 6 минут, 33 секунды (20.02.2012 - 14:40) maximka787 написал(а):
killer8080
) самый настоящий массив.
) самый настоящий массив.
Спустя 19 минут, 35 секунд (20.02.2012 - 14:59) killer8080 написал(а):
Цитата (maximka787 @ 20.02.2012 - 13:40) |
killer8080 ) самый настоящий массив. |
ошибаешься, в js нет ассоциативных массивов, а то что ты показал - это объект. И работать с ним нужно как с объектом
function get_price(var1, var2){
for(var k in products){
if(products[k]['var1'] == var1 && products[k]['var2'] == var2)
return products[k]['price'];
}
return null;
}
Спустя 12 минут, 35 секунд (20.02.2012 - 15:12) maximka787 написал(а):
killer8080
спасибо, месяц на разбор уйдет наверно у меня, круто. начну пожалуй
спасибо, месяц на разбор уйдет наверно у меня, круто. начну пожалуй
![smile.gif](http://phpforum.ru/html/emoticons/smile.gif)
Спустя 9 минут, 22 секунды (20.02.2012 - 15:21) killer8080 написал(а):
maximka787
там подразумевается, что переменная products в глобальной области видимости, но можно конечно и аргументом передать.
там подразумевается, что переменная products в глобальной области видимости, но можно конечно и аргументом передать.
Спустя 12 минут, 10 секунд (20.02.2012 - 15:33) maximka787 написал(а):
killer8080
На счет объектов я даже не знал такое. Думал массив и объект это одно и тоже. Меня интересовало как искать значение по двум переменным (комбинацию), вот и пришла в голову конструкция. в виде первого сообщения в этой теме.
На счет объектов я даже не знал такое. Думал массив и объект это одно и тоже. Меня интересовало как искать значение по двум переменным (комбинацию), вот и пришла в голову конструкция. в виде первого сообщения в этой теме.
Спустя 2 минуты, 21 секунда (20.02.2012 - 15:36) Игорь_Vasinsky написал(а):
Цитата |
Думал массив и объект это одно и тоже |
ну как же..в учебниках же пишут - что можно массив, а можно объект.
Спустя 7 минут, 3 секунды (20.02.2012 - 15:43) maximka787 написал(а):
мне было бы проще так:
но в этой конструкции косяк где-то.
var a = {};
a[1][1] = 1143;
a[1][2] = 33234;
a[1][3] = 515;
a[2][1] = 462;
a[2][2] = 5133;
alert(a[2][2]);
но в этой конструкции косяк где-то.
Спустя 1 час, 5 минут, 12 секунд (20.02.2012 - 16:48) SerginhoLD написал(а):
maximka787, ?
var matrix = [ [1,2,3], [4,5,6], [7,8,9] ]
Спустя 8 часов, 56 минут, 58 секунд (21.02.2012 - 01:45) killer8080 написал(а):
Цитата (maximka787 @ 20.02.2012 - 14:43) |
но в этой конструкции косяк где-то. |
чтобы узнать где косяк, нужно заглядывать в консоль
чтоб твой код заработал, нужно сделать так
![user posted image](http://phpforum.ru/html/emoticons/wink.gif)
var a = {1 : {}, 2 : {}};
a[1][1] = 1143;
a[1][2] = 33234;
a[1][3] = 515;
a[2][1] = 462;
a[2][2] = 5133;
alert(a[2][2]);
Спустя 32 минуты, 45 секунд (21.02.2012 - 02:18) inpost написал(а):
[] - это массив, и бывает только индексный.
{} - объект, для ассоциативных ключей.
{} - объект, для ассоциативных ключей.
Спустя 7 часов, 59 минут, 58 секунд (21.02.2012 - 10:18) maximka787 написал(а):
Все, спасибо всем. Отлично объяснили. JS это не совсем приятная штука как я понял, наверно потому что консоль надо включать, я совсем не пользовался этим)
Спустя 17 минут, 49 секунд (21.02.2012 - 10:35) killer8080 написал(а):
Цитата (maximka787 @ 21.02.2012 - 09:18) |
JS это не совсем приятная штука как я понял, наверно потому что консоль надо включать, я совсем не пользовался этим) |
Js чисто объектный язык, к этому надо привыкнуть. а консоль у меня в опере постоянно открыта (большинство сайтов в нете так и пестрят ошибками в коде, ужас
![ph34r.gif](http://phpforum.ru/html/emoticons/ph34r.gif)
Спустя 2 часа, 50 минут, 2 секунды (21.02.2012 - 13:25) inpost написал(а):
killer8080
Зачем нагружаешь систему бесполезностями?!
Зачем нагружаешь систему бесполезностями?!
![smile.gif](http://phpforum.ru/html/emoticons/smile.gif)
Спустя 18 минут, 25 секунд (21.02.2012 - 13:44) killer8080 написал(а):
Цитата (inpost @ 21.02.2012 - 12:25) |
killer8080 Зачем нагружаешь систему бесполезностями?! |
В смысле?
_____________
..Работает - не трогай!