标签: recursion

使用嵌套对象时,如何在AngularJS中创建递归模板?

我正在尝试从JSON对象动态构建表单,该对象包含嵌套的表单元素组:

  $scope.formData = [
  {label:'First Name', type:'text', required:'true'},
  {label:'Last Name', type:'text', required:'true'},
  {label:'Coffee Preference', type:'dropdown', options: ["HiTest", "Dunkin", "Decaf"]},
  {label: 'Address', type:'group', "Fields":[
      {label:'Street1', type:'text', required:'true'},
      {label:'Street2', type:'text', required:'true'},
      {label:'State', type:'dropdown',  options: ["California", "New York", "Florida"]}
    ]},
  ];
Run Code Online (Sandbox Code Playgroud)

我一直在使用ng-switch块,但它对嵌套项变得难以维持,就像上面的Address对象一样.

这是小提琴:http: //jsfiddle.net/hairgamiMaster/dZ4Rg/

关于如何最好地处理这个嵌套问题的任何想法?非常感谢!

recursion angularjs

69
推荐指数
2
解决办法
4万
查看次数

在嵌套的python词典和列表中查找所有出现的键

我有一个这样的字典:

{ "id" : "abcde",
  "key1" : "blah",
  "key2" : "blah blah",
  "nestedlist" : [ 
    { "id" : "qwerty",
      "nestednestedlist" : [ 
        { "id" : "xyz",
          "keyA" : "blah blah blah" },
        { "id" : "fghi",
          "keyZ" : "blah blah blah" }],
      "anothernestednestedlist" : [ 
        { "id" : "asdf",
          "keyQ" : "blah blah" },
        { "id" : "yuiop",
          "keyW" : "blah" }] } ] } 
Run Code Online (Sandbox Code Playgroud)

基本上是具有任意深度的嵌套列表,字典和字符串的字典.

遍历此方法以提取每个"id"键的值的最佳方法是什么?我想实现相当于XPath查询,如"// id"."id"的值始终是一个字符串.

所以从我的例子来看,我需要的输出基本上是:

["abcde", "qwerty", "xyz", "fghi", "asdf", "yuiop"]
Run Code Online (Sandbox Code Playgroud)

订单并不重要.

python recursion dictionary traversal

68
推荐指数
8
解决办法
6万
查看次数

Node.js - 超出最大调用堆栈大小

当我运行我的代码时,Node.js抛出"RangeError: Maximum call stack size exceeded"了太多递归调用引起的异常.我试图增加Node.js堆栈大小sudo node --stack-size=16000 app,但Node.js崩溃没有任何错误消息.当我在没有sudo的情况下再次运行时,Node.js打印出来'Segmentation fault: 11'.有没有可能在不删除递归调用的情况下解决这个问题?

谢谢

stack-overflow recursion callstack node.js

68
推荐指数
4
解决办法
11万
查看次数

使用PHP递归函数列出目录中的所有文件和文件夹

我正在尝试浏览目录中的所有文件,如果有目录,请浏览所有文件,依此类推,直到没有更多目录要去.每个处理过的项目都将添加到下面函数的结果数组中.虽然我不知道我能做什么/我做错了什么但它不能正常工作,但是当处理下面的代码时,浏览器运行得非常慢,感谢任何帮助!

码:

    function getDirContents($dir){
        $results = array();
        $files = scandir($dir);

            foreach($files as $key => $value){
                if(!is_dir($dir. DIRECTORY_SEPARATOR .$value)){
                    $results[] = $value;
                } else if(is_dir($dir. DIRECTORY_SEPARATOR .$value)) {
                    $results[] = $value;
                    getDirContents($dir. DIRECTORY_SEPARATOR .$value);
                }
            }
    }

    print_r(getDirContents('/xampp/htdocs/WORK'));
Run Code Online (Sandbox Code Playgroud)

php recursion

68
推荐指数
7
解决办法
11万
查看次数

在文件夹及其所有子文件夹中搜索特定类型的文件

我试图在给定文件夹中搜索给定类型的所有文件(例如.pdf)并将它们复制到新文件夹.我需要做的是指定一个根文件夹,并在该文件夹及其所有子文件夹中搜索与给定类型(.pdf)匹配的任何文件.任何人都可以告诉我如何搜索根文件夹的子文件夹及其子文件夹等.这听起来像一个递归方法可以解决这个问题,但我无法正确实现一个?(顺便说一下,我正在ruby中实现这个程序).

ruby recursion file-io

65
推荐指数
4
解决办法
5万
查看次数

用于在C#中遍历树的递归lambda表达式

有人可以告诉我如何实现递归的lambda表达式来遍历C#中的树结构.

c# recursion lambda

63
推荐指数
3
解决办法
3万
查看次数

lambda函数可以在Python中递归调用自身吗?

常规函数可以在其定义中包含对自身的调用,没问题.我无法弄清楚如何使用lambda函数来做这件事,原因很简单,因为lambda函数没有可以引用的名称.有办法吗?怎么样?

python recursion lambda y-combinator

63
推荐指数
8
解决办法
3万
查看次数

河内塔:递归算法

虽然我对理解递归没有任何问题,但我似乎无法绕过河内塔问题的递归解决方案.以下是维基百科的代码:

procedure Hanoi(n: integer; source, dest, by: char);
Begin
    if (n=1) then
        writeln('Move the plate from ', source, ' to ', dest)
    else begin
        Hanoi(n-1, source, by, dest);
        writeln('Move the plate from ', source, ' to ', dest);
        Hanoi(n-1, by, dest, source);
    end;
End;
Run Code Online (Sandbox Code Playgroud)

我理解基本情况和将问题分解成小块的概念,直到您能够移动单个磁盘.但是,我无法弄清楚非基本情况下的两个递归调用是如何协同工作的.也许有人可以帮助我?谢谢.

recursion towers-of-hanoi

63
推荐指数
4
解决办法
16万
查看次数

跟踪递归函数被调用的次数

 function singleDigit(num) {
      let counter = 0
      let number = [...num + ''].map(Number).reduce((x, y) => {return x * y})

      if(number <= 9){
          console.log(number)
      }else{
          console.log(number)
          return singleDigit(number), counter += 1
      }
   }
singleDigit(39)
Run Code Online (Sandbox Code Playgroud)

上面的代码采用一个整数,并通过将它乘以它自己的数字将它减少到一个数字。

示例为 39。

3 x 9 = 27.
2 x 7 = 14.
1 x 4 = 4.
Run Code Online (Sandbox Code Playgroud)

控制台将记录:

27 
14 
4
Run Code Online (Sandbox Code Playgroud)

如何跟踪递归函数被调用了 3 次?

我曾尝试添加计数器,但无法更新。将不胜感激任何帮助

javascript recursion

63
推荐指数
8
解决办法
9061
查看次数

函数式编程 - 很多强调递归,为什么?

我将介绍函数式编程[FP](使用Scala).从我最初的学习中得出的一点是,FP很大程度上依赖于递归.而且似乎在 FP中,执行迭代的唯一方法是编写递归函数.

由于递归的大量使用似乎FPs不得不担心的下一件事StackoverflowExceptions通常是由于长缠绕递归调用.通过引入一些优化(@tailrec从Scala v2.8开始维护堆栈帧和注释中的尾递归相关优化)来解决这个问题

有人可以请教我为什么递归对函数式编程范式如此重要?如果我们迭代地执行某些操作,那么函数式编程语言的规范中是否会出现"违反"的内容?如果是,那么我也很想知道这一点.

PS:请注意,我是函数式编程的新手,所以如果他们解释/回答我的问题,请随时向我指出现有资源.另外我也明白Scala特别为迭代的东西提供支持.

recursion functional-programming scala tail-recursion

62
推荐指数
7
解决办法
9389
查看次数