我需要用 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/