Объекты и их свойства
Есть два объекта вида
[B]obj1[/B] = {}
obj1[11].id = 123;
obj1[11].lnkid = 111;
...
obj1[99].id = 321;
obj1[99].lnkid = 999;
и
[B]obj2[/B] = {}
obj2[111].id = 111;
obj2[111].type = permit;
...
obj2[999].id = 999;
obj2[999].type = deny;
Как я могу получить номер ключа объекта obj1 или объект вида obj1[i], если мне необходимо сделать такую операцию * сравнить значение свойства obj2[i].type (например с permit) * условие совпало, получаю id текущего объекта (это obj2[i].id равное 111) * а вот теперь мне нужно найти свойство объекта obj1 cо значением равному obj2[i].id (это будет obj1[11].lnkid равное 111) * дальше мне нужно получить сам объект obj1[11], чтоб я мог спокойно обратиться к его любому свойству и методу. Прошу извинить за столь закрученный вопрос, описал как смог :) |
Sherminator,
мысли вслух
obj1 = {}
obj1[11] = {};
obj1[11].id = 123;
obj1[11].lnkid = 111;
obj1[99] = {};
obj1[99].id = 321;
obj1[99].lnkid = 999;
obj2 = {};
obj2[111] = {};
obj2[111].id = 111;
obj2[111].type = 'permit';
obj2[999] = {};
obj2[999].id = 999;
obj2[999].type = 'deny';
function get_k(obj, str, type)
{ var i;
type && (i = type)
for(var k in obj) {
el = obj[k];
for(i in el) if (el[i] == str) return k ;
}
return false
}
var indx_obj2 = get_k(obj2, 'permit')
//var indx_obj2 = get_k(obj2, 'permit', 'type')
var id = obj2[indx_obj2].id;
var indx_obj1 = get_k(obj1, id)
alert(indx_obj1)
alert(JSON.stringify(obj1[indx_obj1]))
|
| Часовой пояс GMT +3, время: 01:13. |