使用Javascript中的树元素创建数组
我需要从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
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,但是在函数中声明数组将删除上一个数组,否?是-这就是为什么我说您应该将数组作为函数的参数。调用函数时,传入数组。一种常见的模式是将函数包装为“外部”函数。我会更新我的答案。。。