如何使用Angular.js / Javascript使用子数组键值获取父对象值

时间:2017-11-01 06:31:10

标签: javascript angularjs arrays

我需要一个帮助。如果使用Angular.js或Javascript有任何子键值,我需要检索父对象值。我在下面解释我的代码。

$scope.data = [{
    "parentdes": "Parent description1",
    "parent_id":"1"
    "childdes": [{
      "des": 'chile description11',
      "sub_id":"11"
      "subchilddes": [{
        "des": 'subchild des111',
        "sub_sub_id":"111"
      }]
    }, {
      "des": 'chile description12',
      "sub_id":"12"
      "subchilddes": [{
        "des": 'subchild des112',
         "sub_sub_id":"112"
      }]
    }]
  }, {
    "parentdes": "Parent description2",
    "parent_id":"2"
    "childdes": [{
      "des": 'chile description21',
      "sub_id":"21"
      "subchilddes": [{
        "des": 'subchild des212',
        "sub_sub_id":"212"
      }]
    }, {
      "des": 'chile description22',
      "sub_id":"22"
      "subchilddes": [{
        "des": 'subchild des222',
        "sub_sub_id":"222"
      }]
    }]
  }];

在这里,我有一个像parent->child->subchild这样有价值的卑鄙,意味着有三个等级。这里假设我有id sub_sub_id:222,在这种情况下我需要获取它的parent obeject value i.e- $scope.data[1]['childdes'][1]parent to parent object value i.e-$scope.data[1]。这里我需要父对象索引和使用该索引使用Angular的对象值.js文件/ JavaScript的。请帮忙。

1 个答案:

答案 0 :(得分:0)

您可能需要编写一个函数,该函数从顶部开始检查它的子元素。如果您的数据结构没有变化,即如果$scope.data始终是一个数组,同样,如果subchilddes也是一个数组,那么您的代码可能是直接的。

否则,你必须看看下一个元素是对象还是数组。

您的代码可能会像这样。

  1. $scope.data
  2. 开始
  3. 如果$scope.data是数组,
  4. 然后为数组的每个元素
  5. do,check element,
  6. isString? IsArray的?则IsObject
  7. if isString
  8. 如果元素的值等于您的值,
  9. 打印跟踪(您必须在之前的步骤中保存它)。
  10. 否则,如果不是isString,请返回步骤2.
  11. 如果你能提出一些代码,我可能会帮助你。