javascript - 在javascript中从子对象属性访问父对象

标签 javascript arrays object

我的问题。我有一个这样的对象:

t.mainobject = {
    prop1: "",
    prop2: "",
    id: "1",
    prop3: [
        child1: {
            id: "111"
        },
        child2: {
            id: "112"
        }
    ]
};

只有 child1/child2 对我可见,而我不知道其父对象。我尝试使用下划线,但没有找到任何可以为我提供父对象的方法。

提前感谢您的任何意见/建议。

编辑1:
我的所有子对象都是从多个对象创建的,因此它最终成为一个扁平对象。

喜欢:

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;
      }
    }
  }
}

关于javascript - 在javascript中从子对象属性访问父对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25654661/

相关文章:

javascript - 计算数组中的元素并将它们添加到对象中

json - 在jsp中处理json对象

javascript - Node.js - https.get() 和 JSON.parse() 使服务器崩溃

python - Numpy:在不使用 nan_to_num 的情况下乘以 NaN 值

javascript - render 方法中的对象创建是否会破坏 'React.PureComponent' 并在 'shouldComponentUpdate' 中进行渲染检查?

c - 嵌套结构+字符串问题

无法进入 "if"条件。为什么?

javascript - 将一个 JSON 返回拆分为多个对象

javascript - 重写 reduce 方法 js 的问题

javascript - 正确显示逗号