使用Javascript中的树元素创建数组

使用Javascript中的树元素创建数组,javascript,arrays,function,tree,Javascript,Arrays,Function,Tree,我需要从Javascript中的树元素创建一个数组,作为一个新手,我不知道如何实现这一点 伪代码: function make_array_of_tree_node(tree_node) { for (var i = 0; i < tree_node.childCount; i ++) { var node = tree_node_node.getChild(i); if (node.type ==0) { // Here I'd like

我需要从Javascript中的树元素创建一个数组,作为一个新手,我不知道如何实现这一点

伪代码:

function make_array_of_tree_node(tree_node)
{
   for (var i = 0; i < tree_node.childCount; i ++) {
      var node = tree_node_node.getChild(i);
      if (node.type ==0) {
         // Here I'd like to put a link (node.title) in an array as an element
      } else if (node.type ==6) {
         // Here the element is a folder so a I need to browse it
         make_array_of_tree_node(node)
      }
   }
}

// Some code
make_array_of_tree_node(rootNode);
// Here I'd like to have access to the array containing all the elements node.title
函数生成树节点(树节点)的数组
{
对于(var i=0;i
您可以这样声明一个数组:

var nodes = [];
然后,您可以通过以下方式向其添加内容:

nodes.push(something);
添加到数组末尾的;从这个意义上讲,它有点像一个列表。您可以通过数字索引访问元素,从零开始。将为您保留阵列的长度:

var len = nodes.length;
您可能需要做的是使数组成为函数的另一个参数

编辑-为了说明模式,如果您有递归函数:

function recursive(data, array) {
  if ( timeToStop ) {
    array.push( data.whatever );
  }
  else {
    recursive(data.subData, array);
  }
}
然后,您可以使用第二个函数作为其他代码将使用的真实API:

function actual(data) {
  var array = [];
  recursive(data, array); // fills up the array
  return array;
}

此外,在JavaScript中,通常将“递归”函数放在“实际”函数中,这会使递归部分成为私有的,并保持全局命名空间更干净。

您的
for
循环缺少一个闭合的
}
@Mike Samuel输入错误,因此,感谢您的注意:-)@Pointy谢谢您的回答!不客气。祝你好运!您也可以在JS中向数组添加一些内容,这些内容的节点[nodes.length]=ItItem,但是在函数中声明数组将删除上一个数组,否?是-这就是为什么我说您应该将数组作为函数的参数。调用函数时,传入数组。一种常见的模式是将函数包装为“外部”函数。我会更新我的答案。。。