javascript - 在 Javascript 中创建一个包含树元素的数组

标签 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 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 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 中,将“递归”函数放在“实际”函数中是很常见的,这使得递归部分私有(private)并保持全局命名空间更干净。

关于javascript - 在 Javascript 中创建一个包含树元素的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6252644/

相关文章:

javascript - 如何使用 Javascript 将 innherHTML 字符串拆分为某个字符(如 '+' 符号)之后的特定部分

javascript - 如何扩展 jquery ui 小部件? (1.7)

PHP 将 CSV 文件中的值放入数组中

javascript - 从 JSON 解析数组,其中每个字段键都是一个数字

javascript - 当行数未知时,使用 javascript 更改行的类

r - Dplyr 非标准评估,函数名称作为字符串传递

javascript - ReactJS AXIOS 帖子不起作用

php - 显示上传的图像

javascript - 跳过 Javascript 数组中的空格

c++ - 使用从字符串中提取的参数调用函数