[英]Javascript: Accessing Parent Object's property in Child Object Property
[英]accessing the parent object from the child object property in javascript
我的問題 。 我有一個這樣的對象:
t.mainobject = {
prop1: "",
prop2: "",
id: "1",
prop3: [
child1: {
id: "111"
},
child2: {
id: "112"
}
]
};
我只看到child1 / child2,而我不知道它的父對象。 我嘗試使用下划線,但未找到任何可以為我提供父對象的方法。
在此先感謝您的任何建議/建議。
EDIT1:
我所有的子對象都是從多個對象創建的,因此最終變成了扁平對象。
喜歡:
t.mainobject = {
prop1: "",
prop2: "",
id: "1",
prop3: [
child1: {
id: "111"
},
child2: {
id: "112"
}
]
};
t.mainobject1 = {
prop1: "",
prop2: "",
id: "2",
prop3: [
child1: {
id: "211"
},
child2: {
id: "212"
}
]
};
t.mainobject3 = {
prop1: "",
prop2: "",
id: "1",
prop3: [
child1: {
id: "311"
},
child2: {
id: "312"
}
]
};
現在我得到了一個數組:
[{id:"111"},{id:"112"}, {id:"211"},{id:"212"}, {id:"311"},{id:"312"}]
現在如何使用id獲得包含子對象的父對象。
編輯2:
我的解決方案:
var parent = _.filter(allParent, function(r){
for(var i=0; i<r.posts.length; i++){
if(r.posts[i].id === allChildPosts[index].id){
return r.id;
}
}
});
它返回了父對象,現在我可以輕松訪問任何屬性。
這不可能直接實現,因為就JavaScript而言,child1可以是任意數量的對象的屬性:因此,從總體上講,“父對象”的概念實際上並沒有任何意義。
更重要的是,如果沒有對父對象的引用,它們將被垃圾回收,因此沒有希望回到父對象上。
但是,如果可以列出一個對象的所有潛在父代,則可以全部搜索它們:
function findParent(child){
for(var i=0; i < parents.length; i++){
var mainobject = parents[i]; // a potential parent
for(childName in mainobject.prop3){
if(mainobject.prop3[childName].id === child.id){ // match found!
return mainobject;
}
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.