Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从对象结构中的子对象获取父对象_Javascript_Arrays - Fatal编程技术网

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&…
,如上所述中添加一个测试。