Javascript 从对象结构中的子对象获取父对象
我有一个物体看起来像这样:Javascript 从对象结构中的子对象获取父对象,javascript,arrays,Javascript,Arrays,我有一个物体看起来像这样: { "11": { "id": 11, "parent_product": 0, "product_name": "WebStore", "product_price_city": null, "child": { "12": { "id": 12, "parent_product": 11, "product_name": "WebStore - Single",
{
"11": {
"id": 11,
"parent_product": 0,
"product_name": "WebStore",
"product_price_city": null,
"child": {
"12": {
"id": 12,
"parent_product": 11,
"product_name": "WebStore - Single",
"product_price_city": 500
},
"13": {
"id": 13,
"parent_product": 11,
"product_name": "WebStore - Full",
"product_price_city": 2500
}
}
}
}
这里,键11
有两个子项:12
和13
在不同的对象中,如下所示:
{
"316":
{
"id": 316,
"product_id": 13,
"sold_by": 1,
"product_price": 5000,
"subscription_month": 3,
"updated_by": 0,
"created_at": 1449573556
},
"317":
{
"id": 317,
"product_id": 12,
"sold_by": 1,
"product_price": 5000,
"subscription_month": 3,
"updated_by": 0,
"created_at": 1449573556
}
}
我这里的产品id是12或13,也就是说它永远是一个孩子
我需要得到父id 12和13,这样我才能访问第一个对象
data.11
如何在JavaScript中获取它?只需获取属性并对其进行迭代即可
var object1={
“11”:{“id”:11,“父产品”:0,“产品名称”:“WebStore”,“产品价格城市”:null,“子产品”:{“12”:{“id”:12,“父产品”:11,“产品名称”:“WebStore-Single”,“产品价格城市”:500},
“13”:{“id”:13,“父产品”:11,“产品名称”:“WebStore-Full”,“产品价格城市”:2500}},
“15”:{“id”:15,“父产品”:0,“产品名称”:“WebStore”,“产品价格城市”:null,“子产品”:未定义},
“17”:{“id”:17,“父产品”:0,“产品名称”:“WebStore”,“产品价格城市”:null}
},
钥匙
函数getParent(id,对象){
var-k;
对象。键(对象)。一些(函数(a){
if(对象[a].子对象[a].子对象中的id&&id){
k=a;
返回true;
}
});
返回k;
}
document.write(getParent('12',object1)+'
');/'11'
key=getParent('42',object1);
如果(键的类型==='undefined'){
document.write(“未找到密钥”);
}
只需获取属性并对其进行迭代即可
var object1={
“11”:{“id”:11,“父产品”:0,“产品名称”:“WebStore”,“产品价格城市”:null,“子产品”:{“12”:{“id”:12,“父产品”:11,“产品名称”:“WebStore-Single”,“产品价格城市”:500},
“13”:{“id”:13,“父产品”:11,“产品名称”:“WebStore-Full”,“产品价格城市”:2500}},
“15”:{“id”:15,“父产品”:0,“产品名称”:“WebStore”,“产品价格城市”:null,“子产品”:未定义},
“17”:{“id”:17,“父产品”:0,“产品名称”:“WebStore”,“产品价格城市”:null}
},
钥匙
函数getParent(id,对象){
var-k;
对象。键(对象)。一些(函数(a){
if(对象[a].子对象[a].子对象中的id&&id){
k=a;
返回true;
}
});
返回k;
}
document.write(getParent('12',object1)+'
');/'11'
key=getParent('42',object1);
如果(键的类型==='undefined'){
document.write(“未找到密钥”);
}
您能否更改数据的组织/结构,或者这是最终结果?每个孩子都有一个且只有一个家长?@Amir:是的。每个孩子只有一个家长。你能改变数据的组织/结构吗?还是这是最终的?每个孩子只有一个家长?@Amir:是的。每个孩子只有一个父母。有一个问题。在某些情况下,父母没有孩子。在这种情况下应该做什么?在if子句if(对象[a]。child&&…
,如上所述中添加一个测试。有一个问题。在某些情况下,家长没有孩子。在这种情况下应该做什么?在if子句if(对象[a]。child&…
,如上所述中添加一个测试。