我有两个对象
obj1 = {};
obj1[11].id = 123;
obj1[11].lnkid = 111;
...
obj1[99].id = 321;
obj1[99].lnkid = 999;
和
obj2 = {};
obj2[111].id = 111;
obj2[111].type = 'permit';
...
obj2[999].id = 999;
obj2[999].type = 'deny';
如果我需要执行以下步骤,如何获取对象 obj1 的ID属性或对象本身 obj1 [i] :
在最后一步之后,我想了解这一点 var curr_obj = obj1 [11]; var curr_id = curr_obj.id; //现在curr_id值必须为123
但我不知道如何在最后一步找到并获得对象 obj1 。
答案 0 :(得分:0)
您可以浏览obj1对象并与obj2 id进行比较吗?
像
obj2ID = findedID;
var i = -1;
while (++i < obj1.length)
{
if (obj1[i].lnkid == obj2ID)
{
// You get your Obj1
}
}
那是你在找什么?
答案 1 :(得分:0)
obj[11].id = 123;
就像在做:obj.<object stored in obj, accessed via key 11>.id = 123;
。内部对象没有分配类型,因为没有发生初始化。除此之外,id和lnkid是对象属性。子对象通过索引访问 - 键值,例如11。
我注意到lnkid-obj2的子对象id等于obj1Index - 100
,如果你遵循这个约定很容易找到它,做下面的把戏:
foundObj1 = obj1[obj2[i].id - 100]; // This has O(1) complexity, very fast.
所以,如果你确实在obj1索引和obj2 id之间有一个约定,你可以将它用于你自己的利益。