【问题标题】:Depth First Search using nested ng-Repeat使用嵌套的 ng-Repeat 进行深度优先搜索
【发布时间】:2015-01-24 04:43:28
【问题描述】:

我有一个带有变量键名的对象,其中也包含对象。我想对对象进行深度优先搜索 (DFS)。

一个示例对象:

object = { "var1" : { 
                   "var2a" : {
                          "someKey" : someValue
                             },
                   "var2b" : {
                          "someKey" : someOtherValue
                            }}}

我对 DFS 的尝试如下(不起作用):

<div ng-repeat = "child in object">
     <div ng-repeat = "grandChild in child ">
          <td> {{grandChild.aKey}}</td>
     </div>
</div>

我已经看到其他人in this previous question 的方法,但是由于键名可变,这对我不起作用。

此外,物体的深度是已知的。

如果我们用这段代码sn-p来检查child的结果是什么:

<div ng-repeat = "child in object">
     <td> {{child}}</td>
     <div ng-repeat = "grandChild in child ">
          <td> {{grandChild.aKey}}</td>
     </div>
</div>

我们得到child 的第一个实例是:

{"var2a" : {
           "someKey" : someValue
          }}

编辑:是否可以利用这个将输出到控制台的 JavaScript DFS sn-p?

angular.forEach(object,function(child,value){
      angular.forEach(child,function(grandChild,value){
             console.log(grandChild.someKey)
      });
});

【问题讨论】:

    标签: html json angularjs object depth-first-search


    【解决方案1】:

    因此,事实证明这实际上是不可能使用嵌套的 ng-Repeats。它必须在 JavaScript 中完成。这实际上符合将逻辑排除在 HTML 文件之外的“Angular JS”心态。

    这是 JavaScript 中的 DFS:

     angular.forEach(object,function(key,value){
    
                    if (value!='$id'){ 
                               angular.forEach(key,function(keyChild,valueChild){
    
                                        console.log(valueChild)
                               }
                     });
      });
    

    这将返回 "someKey" : someOtherValue"someKey" : someOtherValue

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-01-31
      • 1970-01-01
      • 2017-03-12
      • 1970-01-01
      • 2016-02-16
      相关资源
      最近更新 更多