应该是递归没有成功回溯,尝试将递归从for循环体中移动到for循环外

解决方案 »

  1.   

    I see, I've got it
    ---------------------------------
    function compositor(fid){
      for (var i=0; i<lanArr.length; i++){   //*********
        if (lanArr[i]['fid'] == fid){
          lan2Arr[k] = new Array();
          lan2Arr[k]['id'] = lanArr[i]['id'];
          lan2Arr[k]['fid'] = lanArr[i]['fid'];
          lan2Arr[k]['name'] = lanArr[i]['name'];
          lan2Arr[k]['layer'] = lanArr[i]['layer'];
          k++;
          compositor(lanArr[i]['id']);
        }
      }
    }
      

  2.   

    声明 JScript 变量
    ---------------------------
    不用 var 声明变量
    可以在声明中不使用 var 关键字并分配一个值来声明变量。这就是所谓的隐式声明,但不建议这样做。隐式声明用分配的名称创建一个全局对象的属性;该属性很像一个具有全局范围可见性的变量。当您在过程级别声明变量时,通常不希望它在全局范围内可见。在这种情况下,必须在变量声明中使用 var 关键字。
      

  3.   

    谢谢xjdawu(无法界定),帮我一个大忙!