Создать массив с элементами дерева в Javascript - PullRequest
2 голосов
/ 06 июня 2011

Мне нужно создать массив из элементов дерева в 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

1 Ответ

2 голосов
/ 06 июня 2011

Вы можете объявить массив следующим образом:

var nodes = [];

Затем вы можете добавить вещи к нему с помощью:

nodes.push(something);

Это добавляет в конец массива; в этом смысле это похоже на список. Вы можете получить доступ к элементам по числовым индексам, начиная с нуля. Длина массива поддерживается для вас:

var len = nodes.length;

Что вы, вероятно, захотите сделать, это сделать массив другим параметром вашей функции.

изменить & mdash; Чтобы проиллюстрировать шаблон, если у вас есть рекурсивная функция:

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 обычно "рекурсивная" функция находится внутри"фактической" функции, которая делает рекурсивную часть частной и обеспечивает чистоту глобального пространства имен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...