gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 19:34:46 25 4
gpt4 key购买 nike

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

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com