簡體   English   中英

從javascript中的子對象屬性訪問父對象

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM