[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: массив
maximka787
Ребят, я недавно обсуждал тему по комбинациям. Сейчас вопрос тот же, но мне нужно вот что. Помогите найти значение ключа, по двум параметрам именно в таком массиве.
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

Спустя 9 минут, 22 секунды (20.02.2012 - 15:21) killer8080 написал(а):
maximka787
там подразумевается, что переменная 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
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 )

Спустя 2 часа, 50 минут, 2 секунды (21.02.2012 - 13:25) inpost написал(а):
killer8080
Зачем нагружаешь систему бесполезностями?! smile.gif

Спустя 18 минут, 25 секунд (21.02.2012 - 13:44) killer8080 написал(а):
Цитата (inpost @ 21.02.2012 - 12:25)
killer8080
Зачем нагружаешь систему бесполезностями?!

В смысле?


_____________
..Работает - не трогай!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.